Method and apparatus for implementing a set of integrated data systems

ABSTRACT

A method, an apparatus, and a system for configuring, designing, and/or implementing integrated data modeling methods for configuring interoperability between multiple data system based upon compliance with data integration standards.

CROSS REFERENCE TO RELATED APPLICATION(S)

The present application is a continuation of and claims the priority ofU.S. patent application Ser. No. 14/496,342, filed on Sep. 9, 2014,titled “A METHOD AND APPARATUS FOR IMPLEMENTING A SET OF INTEGRATED DATASYSTEMS” inventor and applicant Robert Mack, which is a continuation inpart of and claims the priority of U.S. patent application Ser. No.13/746,083, filed on Jan. 21, 2013, titled “A METHOD AND APPARATUS FORDEFINING COMMON ENTITY RELATIONSHIPS”, inventor and applicant RobertMack, which is a continuation in part of U.S. patent application Ser.No. 13/152,683, filed on Jun. 3, 2011 titled “METHOD AND APPARATUS FORCONVERTING HETEROGENEOUS DATABASES INTO STANDARDIZED HOMOGENEOUSDATABASES”, inventor and applicant Robert Mack, such that Jun. 3, 2011is the earliest priority date for the present application.

FIELD OF THE INVENTION

This invention relates to new methods and apparatus concerning thedesign, development, implementation, and maintenance of integrated datasystems.

BACKGROUND OF THE INVENTION

In 1976, the concept of entity-relationship diagramming and datamodeling was developed. When data integration became important in thelate 1980's, the databases designed and/or configured with prior artdata modeling methods became characterized as disparate islands of dataor as incompatible information silos. The reason these databases werecharacterized as information silos was because of data structureincompatibility and data set incompatibility between databases designedand/or configured using the established data modeling methods. Simplystated, prior art data modeling methods were engineered to configure asingle database and not engineered to configure a set of compatibledatabases.

Enterprise data models have been designed and/or configured usingestablished data modeling methods. Enterprise data models usuallyrepresent multiple databases for an organization where the enterprisedata model becomes a foundation for structural metadata commonalityamong the set of multiple databases represented. Unfortunately,structural metadata commonality does not address all the parametersneeded to establish data integration across databases and therefore,enterprise data models offered little improvement in instantiating a setof integrated databases. Since prior art data models do not address thefactors needed to support data system integration, incompatibledatabases that are often characterized as information silos, are alwaysdata system instantiated when using prior art data modeling methods.

Commonly used data modeling methods were engineered to configure onlydatabases. However, our data universe is comprised of non-database typesof data content, such as documents, web pages, spreadsheets, and videosfor example. Content management systems are sometimes used to managenon-database types of data content data files. Enhanced data modelingmethods will be used to allow for the modeling of all data content typesthat may be stored in the computer memory.

There are two main methods of prior art data integration which we referto as transformative data consolidation and data federation ofincompatible data systems. Transformative data consolidation methodsinvolve extracting data values from multiple source data systems andtransforming those source data values into a form compatible with atarget consolidated database into which the transformed data is thenloaded. This method is also known as Extract, Transform, and Load (ELT).Data federation methods attempt to combine data values from two or moredatabases. However, prior art databases, as designed and/or configured,are incompatible and not designed and/or configured to support thiscombining of data values across databases. These data federation methodsare a “quick and dirty” approach to data integration when compared totransformative data consolidation methods.

A prior art method used to insure data consistency in two or more datasystems is referred to as reference data synchronization. To supportreference data synchronization, or Master Data Management (MDM), an MDMdatabase is established to collect reference data from two or more datasystems, in an attempt to from a single consolidated version of thereference data for any data system to utilize. Reference datasynchronization is based upon transformative data consolidation wheredata collected from the source data systems are transformed into a formusable in the MDM database. When the consolidated reference data ismoved from the MDM database to any requesting data system, the referencedata is again transformed into a form usable by the requesting datasystem. Reference data synchronization methods only insure thatreference data is consistent across data systems but does not allow forenforcing data integrity between data systems or the formation of datasystem access paths between multiple data systems such as integrateddatabases for example.

SUMMARY OF THE INVENTION

One or more embodiments of the present invention include a method ofdesigning and/or configuring a set of integrated data systems where datafrom any integrated data system may be directly and dynamically combinedwith data from any other integrated data system. The methods used todesign and/or configure a set of integrated data systems are based uponintegrated data models formed using enhanced data modeling methods.

To support the formation of an integrated data system, prior art datamodeling methods are enhanced to focus upon designing and/or configuringdata system interoperability through a method of master reference datastandards established with integrated data models. These masterreference data standards (MRDS) are integrated data model componentsthat incorporate the structural metadata, a specific plurality of uniquemaster reference data records that may be stored in a master referencedata standard table or a master reference data standard file, and aspecific set of methods needed to support data compatibility andfunctional interoperability among integrated data systems.

One or more embodiments of the present invention include methods torepresent all types of data in integrated data models. Established datamodeling methods were engineered to support the design and/orconfiguring of database type data systems. Within one or moreembodiments of the present application, prior art data models areenhanced to support the configuration of all integrated data systems.Using integrated data models, all types of data content that may bestored in computer memory may now be designed and/or configured to formintegrated data systems that include data content data files such asdocument data files, spreadsheet data files, webpage data files, picturedata files, audio data files, and video data files as well as databasetables for example. Now, any type of computerized data system may bemodeled within integrated data models.

One or more embodiments of the present invention include methods ofcombining multiple integrated data systems that are all populated withdata values into a single integrated data system that is populated withthe data values combined from the original integrated data systems. Thesingle integrated data system will also remain integrated with otherintegrated data systems in that data integrity between integrated datasystems will be maintained.

A computer processor may be programmed by computer software stored incomputer memory, to define integrated data models, automatically or inresponse to a computer user's inputs through a computer interactivedevice, such as a computer keyboard, a touch screen monitor, or acomputer mouse.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a diagram of an apparatus in accordance with an embodimentof the present invention;

FIG. 2 depicts a prior art simple entity-relationship diagram (ERD) of acountry data entity and a state data entity and a data entityrelationship linking the two data entities together that can bedisplayed on a display device of the apparatus of FIG. 1 or stored in acomputer memory of the apparatus of FIG. 1;

FIG. 3 depicts a prior art pair of database tables linked by a foreignkey constraint that was data system instantiated from the ERD shown inFIG. 2 and where the database tables were also populated with datavalues, and where the database tables with their data values can bedisplayed on a display device of the apparatus of FIG. 1 or stored in acomputer memory of the apparatus of FIG. 1;

FIG. 4 depicts an integrated ERD, which is based upon MRDS (masterreference data standard) entities and a data content entity, that may beused to configure an integrated data system for any and all types ofdata content data files that may be stored in computer memory where theintegrated ERD may be displayed on a display device of the apparatus ofFIG. 1 or stored in a computer memory of apparatus of FIG. 1;

FIG. 5 depicts a flow chart for a method of designing integrated ERDssuch as the integrated ERD depicted in FIG. 4, where the method may beexecuted on the computer processor of FIG. 1 with computer userinteraction on an interactive device of FIG. 1;

FIG. 6 depicts a federated ERD comprised from two integrated ERDs wherethe integrated ERDs share five designed and/or configured common entityrelationships between them and where the federated ERD's may bedisplayed on a display device of the apparatus of FIG. 1 or stored in acomputer memory of apparatus of FIG. 1;

FIG. 7 depicts an integrated ERD that results from thenon-transformative data consolidation of the two integrated ERDsdepicted in FIG. 6, where the resultant consolidated integrated ERD maybe displayed on a display device of the apparatus of FIG. 1 or stored ina computer memory of apparatus of FIG. 1;

FIG. 8 depicts a flow chart for a method of consolidating two integratedERDs, such as the two integrated ERDs of FIG. 6, to form a consolidatedintegrated ERD, such as the integrated ERD shown in FIG. 7, where themethod may be executed on a computer processor of the apparatus of FIG.1 with computer user interaction on an interactive device of theapparatus of FIG. 1. The consolidated integrated ERD may be displayed ona display device, such as a display device of apparatus of FIG. 1, ormay be stored in computer memory, such as a computer memory of theapparatus of FIG. 1;

FIG. 9 depicts a flow chart for a method of splitting an integrated ERD,such as the integrated ERD in FIG. 7, into two integrated ERDs, such asthe two integrated ERDs shown in a federated ERD in FIG. 6, where themethod may be executed on the computer processor of the apparatus ofFIG. 1 with computer user interaction on an interactive device of theapparatus of FIG. 1. The federated ERD may be displayed on a displaydevice, such as the display device of the apparatus of FIG. 1, or may bestored in computer memory, such as a computer memory of the apparatus ofFIG. 1;

FIG. 10 depicts two integrated databases that were data systeminstantiated from the two integrated ERDs shown in FIG. 6, where theintegrated databases share five data system access paths between themand where the integrated databases may be stored in a computer memory ofthe apparatus shown in FIG. 1;

FIG. 11 depicts an integrated database that results from theconsolidation of the two integrated databases depicted in FIG. 10, wherethe newly formed integrated consolidated database may be stored in acomputer memory of the apparatus of FIG. 1;

FIG. 12 depicts three detailed MRDS tables, from the same MRDSspecification, where the three MRDS tables are data system instantiatedin three separate but integrated databases and where all three MRDStables are populated with data records from a common unique masterreference data source, such as a master reference data standard table ora master reference data standard file, and these populated MRDS tablesmay be stored in a computer memory of the apparatus of FIG. 1;

FIG. 13 depicts a flow chart of a method for consolidating twointegrated data systems populated with data values, such as the twodatabases depicted in FIG. 10, into a single integrated and consolidateddata system populated with a consolidation of data values, such asdepicted in FIG. 11, where the method may be executed on a computerprocessor of the apparatus of FIG. 1 with computer user interaction onan interactive device of the apparatus FIG. 1;

FIG. 14 depicts a flow chart of a method for splitting an integrateddata system populated with data values, such as the integrated databasedepicted in FIG. 11, into two compatible integrated data systemspopulated with compatible data values, such as the two integrateddatabases depicted in FIG. 10, where the method may be executed on acomputer processor of the apparatus of FIG. 1 with computer userinteraction on an interactive device of the apparatus of FIG. 1.

DETAILED DESCRIPTION OF THE DRAWINGS

The present application incorporates by reference U.S. patentapplication Ser. No. 13/746,083, filed on Jan. 21, 2013, titled “AMETHOD AND APPARATUS FOR DEFINING COMMON ENTITY RELATIONSHIPS”, inventorand applicant Robert Mack; and U.S. patent application Ser. No.13/152,683, filed on Jun. 3, 2011 titled “METHOD AND APPARATUS FORCONVERTING HETEROGENEOUS DATABASES INTO STANDARDIZED HOMOGENEOUSDATABASES”, inventor and applicant Robert Mack.

In the present application the following terms have the followingdefinitions:

Alternate key—In an entity-relationship diagram (ERD), a data entity'salternate key is a unique key, stored in one or more computer memories,such as a computer memory 8 in FIG. 1, that is declared by the computeruser in the ERD as an alternate method of selecting unique data recordsfrom a resultant database table by a database management system (DBMS)in one or more computer memories. In FIG. 1, the computer memory 8 mayactually include one or more computer memories. A database table'salternate key is a unique index associated with the database table inone or more computer memories by the DBMS implemented by a computerprocessor, such as a computer processor 4 in FIG. 1 and used to selectunique data records from the database table.

Common data entity—A common data entity is a data entity used in two ormore ERDs, where the common data entity is configured to supportinteroperability between integrated data systems and where the commondata entity also defines a source of unique common data records that isused to populate the common data system's database tables that are datasystem instantiated from the common data entity. A common data entitymust have at least one unique key defined that is the basis of a commonentity relationship between copies of the same common data entity. Acommon data entity is normally defined within one organization to beshared in the ERDs of the organization as a basis for integrating thedata systems of that organization.

Common database table—A common database table is a database table thatmay be stored in one or more databases, by the DBMS computer software,where identical copies of common database tables contains one or morecommon database table unique indexes that are populated, using the DBMS,with data records from a common set of unique data records. Commondatabase tables are used to create “peer-to-peer” data system accesspaths between two or more integrated databases. Common database tablesare used to support data compatibility among integrated databases but donot normally support database consolidation methods because of primarykey data value incompatibilities that impact database consolidation butthat does not impact the data federation of compatible databases.

Common entity relationship—A common entity relationship is apeer-to-peer type of entity relationship, defined by the computer userin one or more computer memories, wherein each common entityrelationship is associated with a common data entity or an MRDS entitythat includes a declared unique key as defined within the ERD, where theunique key exists in the common data entity or the MRDS entity prior toadding the common entity relationship. Since a common entityrelationship is a peer-to-peer relationship, data attributes are neverinherited as foreign key data attributes with any common entityrelationship. A common entity relationship, being a peer-to-peer typerelationship, is used to link two or more data entities while a dataentity relationship may only link up to two data entities.

Content Management System (CMS)—A content management system is acomputer based data system that supports the management of sharedcomputer storage for data content data files such as document datafiles, web page data files, spreadsheet data files, photograph datafiles, and video data files for example. A CMS stores important metadataassociated to each instance of data content data files includingmetadata that uniquely identifies each data content instance and theunique data content computer memory location of each data content datafile. The database of data content data file metadata, such as a datacontent table, is also searchable so that like data content may begathered. If properly designed and/or configured, an integrated contentmanagement system may be integrated with other integrated data systems.

Data consolidation, Non-Transformative—Non-Transformative dataconsolidation is a new process of implementing a single consolidatedintegrated data system that is populated with data records consolidatedfrom two or more source integrated data systems that were both populatedwith compatible data records. Both source integrated data systems musteach contain an MRDS table that is common to the source integrated datasystems where each MRDS table was populated with data records from aunique plurality of master reference data records as specified for thatMRDS table. Since the source data systems were configured as integrateddata systems, both the data structures and the data records may becombined into a single data structure and a single set of data recordswithout the need for data transformations. This data consolidationprocess is dependent upon the proper integrated data systemconfiguration methods and the proper integrated data records managementmethods.

Data consolidation, Transformative—For the purposes of this patent,transformative data consolidation is a prior art data integration methodwhere data from one or more data systems are extracted and transformedinto a form compatible with a data consolidation data system into whichthe transformed data values are then loaded. This transformative dataconsolidation method is also referred to as an Extract, Transform, andLoad (ETL) data integration method. For transformative dataconsolidation, neither the data structures nor the data values of thesource data systems are compatible. As such, the extracted data valuesneed to be transformed into a form compatible with the target datasystem's data structure. The data values need to be transformed into aform compatible with the data values of all other transformed sourcedata systems so that the data values may be consolidated into a singledata system.

Data content entity—A data content entity is a new ERD object used torepresent different types of data content data files not utilized withprior art data modeling methods, such as picture data files, video datafiles, document data files, webpage data files, spreadsheet data files,audio data files, and presentation data files for example. While priorart ERDs produced with prior art data modeling methods focused upondatabase type data, integrated data modeling methods now allow forconfiguring integrated data systems for all types of data content usingdata content entities or some other representations for non-databasetypes of data.

While the ERD is a graphical representation within a data model, datacontent entities will need special metadata collected and stored in thedata model's repository of metadata. Some of the metadata needed for thedata content entity is a unique identifier for the data content entity,the types of data represented by the data content entity, and the uniquedata content computer memory location for each data content data file.

Data entity—A data entity is a basic component of an ERD that can bedisplayed on a display device 6 of the apparatus 100 of FIG. 1 and thatis stored in a computer memory such as the computer memory 8 of theapparatus 100 shown in FIG. 1. Each data entity of the ERD will be givena name to uniquely identify that data entity from all other dataentities of the ERD. When the data system is formed from the ERD, eachdata entity typically is data system instantiated in the data system asa single data system data file or as a single database table in computermemory. In addition, a data entity includes a list of data attributes,which, when the data system is formed, becomes the list of data fieldsin a data system data file or as database table columns within thedatabase table formed from that data entity. Each data entity generallyhas a primary key declared based upon one or more of the data attributeslisted for that data entity. Each data entity may also have alternatekeys declared also based upon one or more of the data attributes listedfor that data entity. When the data system is formed from the ERD, theprimary key and the alternate keys are typically data systeminstantiated as unique indexes for the data system data file or for thedatabase table formed from that data entity.

Data entity relationship—A data entity relationship is a connector orlink, which is stored in one or more computer memories, such as incomputer memory 8, between one or two data entities in an ERD. A dataentity relationship linking a data entity with itself is often referredto as a recursive data entity relationship. A data entity relationshipprovides a designed and/or configured data access path between one ortwo data entities. The data entity relationships are depictedgraphically in ERDs of this patent, as lines that begin attached to afirst data entity and end with a filled circle on the dependent dataentity. A data entity relationship causes the data modeling program toduplicate the primary key data attributes or to duplicate an alternatekey data attribute from a first data entity into the data entity that isdependent on that first data entity. These duplicated key dataattributes do not exist in the dependent data entity prior to adding thedata entity relationship. The computer processor 4 may be programmed bydata modeling computer software to permit a user via interactive device2 to make data entity relationships between data entities. The user, viainteractive device 2, may select which of a first data entity's key dataattributes will be duplicated by the data modeling computer software.These duplicated key data attributes are referred to as a foreign keydata attributes in the dependent data entity. Upon data systeminstantiation, each data entity relationship from the ERD is normallydata system instantiated as a foreign key constraint, in one or morecomputer memories, such as computer memory 8.

Data federation—Data federation is a prior art method of dataintegration where data values from multiple databases or partialdatabases are combined, where possible, in volatile computer memory.Data virtualization is also a prior art method that is an expanded formof data federation where data incompatibility is programmaticallytransformed from these multiple databases into a compatible andconsistent form wherever possible. Unfortunately, data federationmethods and data virtualization methods are limited as prior artdatabases have many incompatibilities that cannot be accurately resolvedby these methods.

Data model—A data model is a computer implemented repository of metadatathat also normally includes one or more ERDs that can be displayed onthe display device 6 of the apparatus 100 of FIG. 1 or stored in thecomputer memory 8 of the apparatus 100 of FIG. 1. A data model is oftendeveloped as a method to design, implement, and maintain one or moredata systems using a data modeling program.

Data modeling program—A data modeling program is a computer program,executing on a computer processor such as computer processor 4 in FIG.1, wherein the data modeling program is used to define and maintainprior art data models. In addition, a data modeling program is also usedto data system instantiate a data model into one or more data systems ordatabases using one or more DBMSs.

Data record—A data record is typically a single row of data values in adatabase table or a data system data file that is stored in computermemory, such as computer memory 8. Each data record will usually includea primary key value for uniquely identifying that data record. Inaddition, a data record may include alternate key values to providealternative methods for identifying unique data records in a computermemory, such as computer memory 8 in FIG. 1. A data record may alsoinclude foreign key values or common index sets to allow linking of datarecords from multiple database tables or from multiple data system datafiles.

Data system—For the purposes of the present patent application, a datasystem is any representation of data content in a computer based system.Data systems include databases, CMSs, and computerized data content datafiles, of digitized picture data files, audio data files, and video datafiles for example.

Data system access path—A data system access path is a designed and/orconfigured peer-to-peer type linkage between two or more integrated datasystems. Data system access paths are designed and/or configured inintegrated ERDs as common entity relationships. Integrated data systemsmay be integrated database systems or other types of integrated datasystems such as an integrated data content management system forexample. Data system access paths provide a reliable linkage forcombining data records from multiple integrated data systems. Forexample, when a first MRDS table in a first integrated database containsa first unique master reference data record that is the same firstunique master reference data record of a first copy of the first MRDStable in a second integrated database, these two first unique masterreference data records may be directly joined. This direct joining of asingle unique master reference data record between the first MRDS tableof the first integrated database and the first copy of the first MRDStable in the second integrated database allows for data records fromboth integrated databases to be directly combined provided these datarecords are both related directly to the first unique master referencedata record. For this data system access path, any of the plurality ofunique master reference data records for an MRDS table or data systemdata file in any integrated data system may be used to form direct joinswith any of the same unique master reference data records in any copiesof the same MRDS table or data system data file in any integrated datasystem.

Using a data system access path, a set of data records from a firstintegrated data system may be joined to the set of data records of anyother integrated data system linked by the same data system access pathto form a single concatenated set of data records. A joining of thefirst set of data records to the second set of data records is basedupon common data values in both the first set of data records and in thesecond set of data records. The joined sets of data records are formedinto a single result set of metadata and data records that can bedisplayed on the display device 6 of the apparatus 100 of FIG. 1 orstored in a computer memory 8 of the apparatus 100 of FIG. 1.

Data system instantiation—The process of data system instantiation isused to construct data system objects, such as structured data systemdata files and data system data file indexes, in one or more computermemories such as computer memory 8 for apparatus 100 depicted in FIG. 1.These data system objects are created, maintained and deleted bycomputer software programs, which may be executed within computerprocessor 4 and stored in computer memory 8. In some cases, the datasystem may be a database or an integrated database. In the case wherethe data system is a database, the term database instantiation may beused to be more specific.

Data value—A data value is usually an alphanumeric string stored in aspecific location in a computer memory such as a named data field. Forexample, a data value may be stored in a data field of a data entry formin a computer memory or in a specific cell of a spreadsheet or in aspecific data column of a specific data record of a database table incomputer memory. The interpretation of the actual value of thealphanumeric string is dependent upon the data type of the data field.For example, if the data type of a data field is numeric, only validnumeric values will be accepted into the data field. If the data type ofa data field is a date, only valid date alphanumeric strings will beaccepted into the data field.

Database—A database is generally a structured grouping of data valuestypically stored in a computer memory and organized for convenient datavalue access by a DBMS. More specific to the present patent application,a database is a defined data structure, generally stored in a computermemory, comprised of database tables, MRDS tables, common databasetables, database table columns, database table indexes, databaseconstraints, and other database objects defined using an computer-basedDBMS.

Database management system (DBMS)—A DBMS is a computer softwareapplication or software program stored in one or more computer memories,such as one or more of computer memory 8, and executed by a computerprocessor such as processor 4 of FIG. 1 for maintaining databaseobjects, such as common database tables, database table indexes, andforeign key constraints as well as database data values that arepopulated into the database tables.

Database table—A database table is a database object used to store setsof data values, in one or more computer memories. Each set of datavalues represents a horizontal row of the database table often referredto as a database table's data record. Each data value of these datarecords is represented as a labeled vertical column of the databasetable. Each data value, of a specific data record, may be addressed, inone or more computer memories by using the label of said verticalcolumn.

Database table index—A database table index is a type of database objectassociated to a database table stored in computer memory using a DBMS. Adatabase table index may be comprised of a single database table columnof data values or be comprised of multiple database table columns ofdata values from the same database table. A database table index may beconfigured to be a unique database table index in the sense that thedatabase table index uses a data value only once per database tableindex, or designed and/or configured as a non-unique database tableindex, which may repeat data values in that database table index. TheDBMS is normally used to maintain the integrity of all database tableindexes which are stored in one or more computer memories. Databasetable indexes are used to maintain the data value integrity of thedatabase table data records as well as to aid in the rapid retrieval ofspecific data records from an indexed database table.

Enterprise Data Model—A prior art type of data model intended toencompass the entire scope of an enterprise from which multipledatabases are often data system instantiated. However, these multipledatabases were no more integrated than those designed and/or configuredin multiple data models since prior art data models do not address thefactors critical to forming integrated databases.

Entity-Relationship diagram (ERD)—An entity-relationship diagram is agraphical depiction of a data system configuration that includes dataentities, and data entity relationships that can be displayed on thedisplay device 6 of the apparatus 100 of FIG. 1 or stored in a computermemory 8 of the apparatus 100 of FIG. 1. The depicted data entitiesrepresent potential database tables to be data system instantiated. Thedepicted data entity relationships represent potential foreign keyconstraints to be data system instantiated into the same database andused to maintain referential integrity between the data systeminstantiated database tables. An ERD, in at least one embodiment of thepresent invention, is always stored within a repository of metadata,commonly referred to as a data model, along with other metadata requiredto data system instantiate a data system.

Entity-Relationship diagram, federated—A federated ERD(entity-relationship diagram) is a new representation of integratedERDs, which are formed from two or more integrated ERDs where commonentity relationships are also shown. A federated ERD is normally acomputer-generated diagram of a group of selected integrated ERDS wherethe common entity relationships are programmatically determined basedupon metadata information associated with each integrated ERD.

Entity-Relationship diagram, consolidated—A consolidated ERD(entity-relationship diagram) is an integrated ERD formed from two ormore integrated ERDs. The consolidated ERD method may be used to form asingle data system from multiple integrated data systems. For example, afirst integrated data system and a second integrated data system thatare both populated with data vales may be reconfigured or consolidatedto form a third integrated data system that is populated with datavalues from both the first and the second integrated data systems.

First the data entities and the data entity relationships from thesource integrated ERDs are copied into a blank ERD. To form aconsolidated ERD, duplicate common MRDS entities and duplicate commondata entities need to be removed from the consolidated ERD. For each setof duplicate common data entities, their data entity relationships needto be consolidated onto one of the set of common data entities and theduplicate common data entities from that set of common data entitiesthat no longer have data entity relationships are removed from theconsolidated ERD. Once the duplicate common data entities have beenremoved from the consolidated ERD, the duplicate MRDS entities need tobe removed. For each set of duplicate MRDS entities, their data entityrelationships need to be consolidated onto one of the set of MRDSentities and the duplicate MRDS entities from that set of MRDS entitiesthat no longer have data entity relationships are removed from theconsolidated ERD. The resultant consolidated ERD is now an integratedERD that may be used in the same manner as any other integrated ERD.

Foreign key—A foreign key provides a link between two data entities thatis represented by a data entity relationship in an ERD. The dataattributes from the primary key or a selected alternate key of a firstdata entity are duplicated into a second data entity which is nowdependent upon the first data entity. These duplicated data attributesare referred to as foreign key data attributes. This link or data entityrelationship, when data system instantiated, declares a foreign keyconstraint that enforces referential integrity between the two databasetables that result from the first data entity and from the dependentsecond data entity. Foreign key data attributes, when data systeminstantiated, become foreign key database table columns in the databasetable formed from the dependent second data entity.

Foreign key constraint—A foreign key constraint is declared in a DBMS asa means of implementing and maintaining database referential integritybetween two sets of data records each of which is most often containedwithin two different database tables. A foreign key constraint isnormally designed and/or configured in an ERD as a data entityrelationship usually between at most two data entities. Foreign keyconstraints are stored in computer memory and are used by the DBMS toenforce database referential integrity rules for creating, updating anddeleting data records. Foreign key constraints are extremely importantwithin a database because only data record sets with enforcedreferential integrity may be reliably joined to form a consistent,combined set of data records. Each foreign key constraint in a databaseprovides a bidirectional data access path for combining the data recordsfrom at most two database tables.

Integrated data model—An integrated data model is a repository ofmetadata developed using established data modeling methods that areenhanced to support common entity relationships, MRDS entities, commondata entities, and data content entities. Integrated data models areused to design and/or configure integrated data systems and to supportthe methods of standardized data integration.

Integrated data system—For the purposes of this present patentapplication, an integrated data system is a computerized data systemthat is compliant with a set of master reference data standards (MRDS).Integrated data systems are designed and/or configured to supportinteroperability between data systems where data records from a firstintegrated data system may be directly joined, using designed and/orconfigured data system access paths, with data records from any other sodesigned and/or configured integrated data system.

Master reference data—Master reference data is a set of data records,stored in a master reference data standard table or a master referencedata standard file, used to define and uniquely identify all relevantinstances of specific fundamental objects such as a residential addressor a person or an organization for example. In this present patentapplication, master reference data is combined withspecifically-designed and/or configured structural metadata to formreusable MRDS data model components for use in integrated data models.

Master reference data integrity—For the purposes of this present patentapplication, master reference data integrity is the process of ensuringthat the master reference data is used consistently among all integrateddata systems. Only when master reference data integrity is properlyenforced between integrated data systems are the data system accesspaths between integrated data systems properly supported and theseintegrated data systems may be properly joined. Master reference data isa key to standardized data integration and the master reference dataintegrity rules and methods should be addressed in the MRDSspecification.

Master Reference Data Standard (MRDS) Entity—An MRDS entity is anenhanced ERD component formed using integrated data modeling methods fora specific master reference data subject area that should be designedand/or configured in accordance with an MRDS specification. The MRDSentity is designed and/or configured to be used with a multitude of datasystems to support standardized data integration.

While there are similarities between an MRDS entity and a common dataentity in that each is used to configure interoperability betweendatabases, they differ in purpose. The purpose of a common data entityis to provide data system compatibility, for a set of data systems, insubject areas where MRDS entities have not been developed.

Master reference data standard (MRDS) Specification—For the purposes ofthis present patent application, an MRDS specification is a requirementsdocument for a specific subject area of master reference data that maythen be used to develop reusable MRDS data model components and MRDSintegrated data system components for the purposes of implementingintegrating data systems. Each MRDS specification document shouldaddress the structural metadata requirements, the master reference dataset requirements, and the methods required to support theinteroperability between integrated data systems. The MRDSspecifications become the blueprint for implementing standardized dataintegration for a specific subject area of master reference data.

Primary key—A primary key is comprised of one or more data attributeswithin a data entity that are declared in a data model by data modelingsoftware executing on computer processor 4 which is programmed to storethe declared primary key in computer memory, such as computer memory 8of FIG. 1. The primary key of a given data entity is the primary methodof uniquely identifying data records within a database table. A dataentity's primary key is data system instantiated as the primary uniqueindex of the database table that was data system instantiated from thegiven data entity. The primary unique index of a given database table isused as a means of rapidly selecting unique data records from thatdatabase table.

Reference data synchronization—Reference data synchronization is a priorart method used to manage reference data across prior art data systems.Since prior art data systems were not integrated, there was no dataintegrity enforcement across data systems to ensure that reference datawas consistently applied in each data system. Reference datasynchronization, or master data management (MDM) of one or moreembodiments of the present application, is a reference data cleansingmethod where an MDM database is created to collect reference data frommultiple incompatible data systems. The reference data from eachincompatible data system is collected and transformed into a formcompatible with the MDM database before being stored in the MDMdatabase. Once the collected reference data has been cleansed, it isreturned to each incompatible data system after again being transformedinto a form compatible with that target data system. Unfortunately,reference data synchronization does not enforce data integrity acrossdata systems and does not form data system access paths between datasystems.

Referential integrity—Referential integrity is a process, often managedby the DBMS, which is used to insure the consistency and integrity ofdata values stored within a computer memory as a database. Databasereferential integrity is related to joining data records stored in adatabase table to the data records stored in another database table suchas two database tables related by a foreign key constraint.

Repository of metadata—a repository of metadata is an area of computermemory used to store various metadata and information about datasystems. For this patent application, a data model is a repository ofmetadata that contains ERDs, integrated ERDs, data content relatedmetadata and other such metadata needed to support integrated datamodeling and standardized data integration methods.

Standardized data integration—Standardized data integration is a newdata integration method where data integration standards are providedsuch that any data system which is compliant with these data integrationstandards is integrated with any other compliant data system.

For the present patent application, the data integration standards areoften developed as MRDS specifications and MRDS entities and thenimplemented as MRDS data system components such as MRDS tables or asMRDS files for example. These MRDS entities become a part of integrateddata modeling methods which support standardized data integration.Standardized data integration supports both data federation ofintegrated data systems and non-transformative data consolidation formsof data integration.

Unique Index—A unique index is a database object used to constrain theset of data values for a database table or for a data system data filestored in one or more computer memories, wherein no duplicate datavalues are allowed in the unique index. For each unique index, thecombination of indexed data values for each data record must form aunique index entry for that database table or data system data file. Anyattempts to form a duplicate combination of data values for any uniqueindex will be rejected by the computer programmed to reject duplicatedata values, such as executed by the computer processor 4.

Unique Key—A unique key is declared in an ERD on one or more dataattributes of a data entity. This unique key is declared to indicatethat, upon data system instantiation, a unique index will be implementedbased upon the database table columns formed from the one or moreattributes of the data entity for the database table data systeminstantiated from that data entity.

FIG. 1 shows a diagram of apparatus 100 in accordance with an embodimentof the present invention. The apparatus 100 includes an interactivedevice 2, a computer processor 4, a display device 6, a computer memory8 and a computer network 10. Computer memory 8 may include any type ofcomputer memory, including long term memory such as disk memory inaddition to computer random access memory which may lose its values whenpower is removed. The computer memory 8 may include one or more computermemories. The computer network 10 is used to provide a communicationlink to one or more other computer processors and their associateddevices and computer memory. The interactive device 2, the displaydevice 6, the computer memory 8 and the computer network 10 communicatewith the computer processor 4 via communications links 2 a, 6 a, 8 a,and 10 a respectively, which may be electronic, computer software,optical, wireless or any other type of communications links. Thecomputer processor 4 may be programmed by computer software to implementthe method of integrated data model development and integrated datasystem implementation in accordance with one or more embodiments of thepresent invention to produce integrated data models and integrated datasystems in the computer memory 8, such as shown by FIG. 1.

FIG. 2 shows ERD (entity-relationship diagram) 200, which may be createdby a computer user using a data modeling program and the ERD may bestored in the computer memory 8 of FIG. 1. The ERD 200 contains two dataentities, data entities 202 and 204, combined with a single data entityrelationship 206 that connects these two data entities. In thisrepresentation of an ERD, ERD 200, each of data entities 202 and 204 arerepresented by a rounded-corner rectangle while the data entityrelationship 206 is represented by a line terminated with a filledcircle 206 a. Each data entity, such as each of 202 and 204, representsa group of related data attributes, such as the data attribute 210,which is labeled country name, and data attribute 208, which is labeledcountry abbreviation, for data entity 202. In this notation of dataentities, the data attributes above a line in the rounded-cornedrectangle, such as for example, above line 202 a for data entity 202,are declared to be the primary key of the data entity. The primary keydata attributes of each data entity are also denoted as such by the (PK)which follows the data attribute's name. This primary key is a declaredunique identifier for the data entity. In addition to the data entity'sdeclared primary key, each data entity may have zero, one or morealternate keys defined. In FIG. 2, both data entities 202 and 204contain a single alternate key denoted by the (AK1) following thealternate key's data attributes. In data entity 202, the alternate keyis declared by a computer user using a data modeling program upon thesingle data attribute 210, which is labeled country name and stored incomputer memory 8. In data entity 204, the alternate key is a compositealternate key comprised of the data attribute 212, which is labeledcountry abbreviation, and data attribute 216, which is labeled statename. The data entity relationships of ERDs, such as ERD 200, depict alink, normally between two data entities, that allow data attributesfrom a first data entity, such as data entity 202, to be related to dataattributes from the second data entity, such as data entity 204. Undersome circumstances, a data entity relationship links one data entity toitself in what is often referred to as a recursive data entityrelationship. Each data entity relationship links at most two dataentities.

Data entity relationship 206, shown in FIG. 2, links the first dataentity 202 to the second data entity 204. Note that the data entity 204contains data attribute 212, denoted by (FK). Data attribute 212 isinherited from the primary key of data entity 202, which is dataattribute 208, wherein the data attribute inheritance is implemented bythe data modeling program executing on computer processor 4. Thisinheritance of a first data entity's primary key data attributes or oneof that data entity's alternate key data attributes into a second dataentity is referred to as a foreign key thus the denotation of (FK). Thedata entity that donates unique key data attributes, such as dataattribute 208 of data entity 202, is referred to as the parent dataentity while the data entity that inherits the data attributes, such asdata attribute 212 of data entity 204, is referred to as the child dataentity. Prior art data entity relationships, that enforce referentialintegrity between data entities, are parent-child type of data entityrelationships where unique key data attributes are always inherited byone of the related data entities. In the case of the recursive dataentity relationship, the parent data entity and the child data entityare the same data entity, but that data entity still inherits the uniquekey data attributes as foreign key attributes.

FIG. 3 is database 300 that results from the data system instantiation,in one or more computer memories, such as computer memory 8 of FIG. 1,of ERD 200 depicted in FIG. 2. Data system instantiation may be computeruser initiated using a data modeling program where the data systeminstantiation is implemented by one or more DBMSs where both the datamodeling program and the DBMSs are executed in one or more computerprocessors, such as computer processor 4 of FIG. 1, and the databaseobjects are stored in one or more computer memories, such as computermemory 8 of FIG. 1. Databases table 302 and 304 are data systeminstantiated into database 300, in computer memory, such as computermemory 8, from data entity 202 and 204 respectively of ERD 200 shown inFIG. 2. The primary key index of database table 302 is based upondatabase column 310, which is data system instantiated from primary keydata attribute 208 of ERD 200. Database table 304 is data systeminstantiated into database 300 from data entity 204 in FIG. 2. Theprimary key index for database table 304 is a composite unique indexbased upon database columns 320 and 322, which are data systeminstantiated from primary key data attributes 212 and 214 of ERD 200.

Beyond the database tables, foreign key constraints are anotherimportant type of database object that is data system instantiated intoany relational database. Foreign key constraint 306 of database 300,shown in FIG. 3, is data system instantiated from data entityrelationship 206 of ERD 200 shown in FIG. 2. Again, data systeminstantiation is normally initiated by a computer user using a datamodeling program. Foreign key constraint 306, of database 300 shown inFIG. 3, is data system instantiated to maintain database referentialintegrity between database column 310 of database table 302 and databasecolumn 320 of database table 304. Database referential integrity isnormally maintained by a DBMS executing in a computer processor such ascomputer processor 4 of FIG. 1. Once a foreign key constraint is datasystem instantiated, the DBMS computer software program executed bycomputer processor 4, and stored in computer memory 8, is programmed toenforce the referential integrity rules for that foreign key constraint.

In any relational database, the foreign key constraints are important.Foreign key constraints are used within a DBMS to maintain both thedatabase referential integrity of the data records in the relateddatabase tables and to provide bidirectional data system access pathsbetween database tables.

In accordance with at least on embodiment of the present invention, amethod is provided, which can be called a “method of defining andidentifying all data types and forming integrated data systems” incomputer memory 8. This method is used to design, implement, andmaintain integrated data systems, in computer memory 8, including anytypes of data content that may be stored in computer memory as a datacontent data file.

In accordance with at least one embodiment of the present invention, amethod is provided, which can be called a “method of defining MRDS(master reference data standard) entities” in computer memory, such asin computer memory 8 of apparatus 100. This method is utilized forconfiguring, designing, and/or implementing MRDS data system componentsand integrated data models in one or more computer memories, such ascomputer memory 8 of FIG. 1, which gives a person who would defineintegrated data models and MRDS data system components a predefinedmethod to data system instantiate multiple integrated data systems.

FIG. 4 depicts integrated ERD 400 with MRDS entities (401, 402, 403, and404) and data content entity (405) along with data entity relationships(406, 407, 408, and 409). Both the MRDS entity and the data contententity are new ERD symbols created by this present patent application.For the purposes of this present patent application, the MRDS entitysymbol has squared corners and a double line separating the primary keydata attributes from the non-primary key data attributes. For thepurposes of this patent, the data content entity symbol is a singlesquare with one folded corner and a single line separating the primarykey data attributes from the non-primary key data attributes.

With integrated ERD 400, any data types that may be stored in computermemory as data content data files may now be data modeled andrepresented in an integrated ERD. The data content entity represents anytype of data content data files such as document data files, spreadsheetdata files, picture data files, video data files, audio data files andwebpage html data files for example. The MRDS entities, such as MRDSentities 401, 402, 403, and 404, define the master reference datastandards that are the basis of standardized data integration methods.

The data content entity, used in the ERDs of this present patentapplication, is a symbol for general data content types used inintegrated data modeling. This general data content may be documents,web pages, photographs, audio, video, or spreadsheets for example thatare stored in computer memory as data content data files. More specificdata content symbols that represent a subset of data content may be usedin an integrated ERD if desired. For example, a data entity may beconsidered as a specific data content symbol used in prior art ERDs tospecify database type data content for example. The data content entityof the present patent application, has been referred to, in part,previously in the prior art, see for examplehttp://www.kmed.cs.ucla.edu/papers/k0746.pdf, as a multimedia entity.The metadata associated with the data content entity, which would bestored in the repository of metadata commonly referred to as a datamodel, would identify, define and detail the specifics for the datacontent instances represented in the data content entity. Each datacontent entity, such as data content entity 405 in FIG. 4, in one ormore embodiments of the present invention, should be associated with aunique data content entity name, and should contain a unique key, suchas a primary key or an alternate key, which is used to uniquely identifyeach individual instance of the data content. In addition, the datacontent entity, in at least one embodiment of the present application,must also contain the data content instance itself or a unique datacontent location in computer memory of the data content instance's datacontent data file so that that data content instance may be displayed asneeded when retrieved. If the data content were web pages, for example,the URL “address” of the specific web page's html data content data filecould be stored. Of course, the data content entity, such as 405, mayalso contain other pertinent data attributes as required by the specifictype of data content.

The MRDS entity, such as MRDS entity 401 in integrated ERD 400 of FIG.4, results from standardized data integration methods where any datasystem that is compliant with the MRDS specifications will be anintegrated data system. Each MRDS entity is designed and/or configuredspecifically to support standardized data integration among allcompliant integrated data systems.

The inventor of the present application has done research which hasshown that the data universe, the totality of all data and of allmetadata, is finite. Therefore, the data universe contains a boundary ofdata where this boundary data could be characterized as fundamentalmaster reference data. When properly designed and/or configured, allintegrated data models should use fundamental master reference data.

The inventor of the present application has done research which has alsoshown that both the structured data storage area depicted in an ERD andthe data set values are important to support data integration and shouldbe designed and/or configured and maintained together for suchfundamental master reference data. MRDS entities support theconfiguration of both the MRDS data structure and the plurality ofunique MRDS data records that are stored in computer memory at auniquely identified master data computer memory location. The MRDSentity, such as MRDS entity 401 in integrated ERD 400 of FIG. 4,represents fundamental master reference data that has been specificallydesigned and/or configured to support interoperability betweenintegrated data systems. Some interoperability between data systems aresupported by common entity relationships that enforce data integritybetween integrated data systems and that provide data system accesspaths between integrated data systems. Different levels of masterreference data granularity may exist in multiple integrated data systemsso that the MRDS entities must support transitions in master referencedata granularity in combining data from one integrated data system toanother integrated data system. Some integrated data systems need toretain chronological changes in master reference data while otherintegrated data systems do not retain this information. Therefore, someMRDS entities are designed and/or configured to support retaining thesechronological changes. These are examples of some of the functionalinteroperability that needs to be addressed in configuring MRDSentities.

ERD 400 is a simple representation for defining all data in the datauniverse. The MRDS entities (401, 402, 403, and 404) represent theboundary of the data universe and the data content entity representssome specific non-boundary data from the data universe. The data entityrelationships depict the direct relation between the data content entity405 and the fundamental master reference data represented in MRDSentities 401-404.

An integrated ERD, such as integrated ERD 400 depicted in FIG. 4, is arepresentation of an integrated data model that supports standardizeddata integration methods. Any integrated ERD that is based upon MRDSentities, such as MRDS entities 401, 402, 403, and 404 of integrated ERD400 depicted in FIG. 4, may be integrated with any other integrated ERDprovided that the ERDs each contain at least one common MRDS entity.Standardized data integration in data models allows for individuallydeveloped data models to be combined forming larger data models basedupon any common MRDS entities. When integrated ERDs are data systeminstantiated, these integrated data systems support standardized dataintegration in both a data federation of integrated data systemsapproach as well as a non-transformative data consolidation ofintegrated data systems approach.

Upon data system instantiation of integrated data models, such as theintegrated data model represented by enhanced ERD 400 depicted in FIG.4, the MRDS entities may be data system instantiated as integrateddatabase tables, as metadata tags and master reference data for htmldata system data files, or in another form of structured data systemdata files such as XML data system data files for example. These datasystems are data system instantiated into computer memory, such ascomputer memory 8 of apparatus 100 depicted in FIG. 1. To facilitatedata integration, it is most important that whatever data storage formthe MRDS entities are applied into computer memory, that this datastorage form be accessible to other integrated data storage forms. Notonly must the plurality of unique master reference data records beconsistently applied to multiple data storage forms, but theaccessibility between different data storage forms must also be providedto insure that data from one data storage form may be combined or joinedwith data from another data storage form. For example, two differentDBMS product vendors will have their own native forms of structuredphysical data storage. However, both DBMS product vendors will adhere tothe Open Database Connectivity Standards, for example, to insure openaccessibility between databases instantiated by their DBMS product.Connectivity standards compliance enables the dynamic and directcombining of data across databases controlled by different DBMSs using adata federation approach for example.

The content data entity may be data system instantiated in acommercially available Content Management System (CMS) such asMicrosoft's (trademarked) SharePoint (trademarked). When an integratedCMS supports connections to DBMS databases by compliance with the OpenDatabase Connectivity Standards, any data content in the integrated CMSmay now be joined to any appropriate integrated database data records orother compliant integrated data systems.

FIG. 5 depicts flow chart 500 of a method used to define and configurean integrated ERD within an integrated data model, such as integratedERD 400 depicted in FIG. 4. Flow chart 500 contains flow chart initiator501, flow chart processes 503, 505, 509, 513, 515, and 517, and flowchart decisions 507, and 511, along with flow chart terminator 519. Inaddition, flow chart 500 depicts flow chart flows 502, 504, 506, 508 a,508 b, 510, 512 a, 512 b, 514, 516, and 518, along with computer storageareas 520, 521, 522 and 523.

Computer storage areas, such as computer storage area 520, are storageareas that would be implemented in a computer memory such as computermemory 8 of apparatus 100 depicted in FIG. 1. These computer storageareas may also be accessible from other computers using a computernetwork such as computer network 10 depicted in apparatus 100 shown inFIG. 1. Computer storage area 520, of flow chart 500 depicted in FIG. 5,represents a storage area of the repository of metadata for one or moreintegrated data models along with their integrated ERDs. Computerstorage area 521, of flow chart 500 depicted in FIG. 5, represents acomputer storage area for MRDS related information such as MRDS entity401 depicted in integrated EDR 400 shown in FIG. 4. Since the MRDSentities are reusable in integrated ERDs, data storage area 521 must beaccessible to computers that would need access to the MRDS entities. Forexample, the MRDS entities and their related metadata information, suchas the unique master data computer memory location of the unique masterreference data records, may be made available on the Internet such asdepicted in apparatus 100 of FIG. 1 where computer network 10 providesconnection to the Internet. Computer storage area 522, of flow chart 500shown in FIG. 5, is an area of structured data storage that may be usedfor database structures and for the data system data files of one ormore data systems for example. Access to computer storage area 522 fordatabase structures could be controlled by a DBMS software executing oncomputer processor 4 also of apparatus 100 depicted in FIG. 1. Access tocomputer storage area 522 for data system data files of a specific datasystem would normally be controlled by computer software programmedspecifically for that data system. Computer storage area 523, of flowchart 500 shown in FIG. 5, is an area of data storage for CMS relateddata content data files such as document data files, picture data files,and spreadsheet data files for example. In some cases, CMS software,executing on computer processor 4 of apparatus 100 shown in FIG. 1,could be used to control access to computer storage area 523 of flowchart 500. The content management computer storage area 523 may also bemade accessible by other computer processors using computer network 10as depicted in apparatus 100 shown in FIG. 1.

Flow chart 500, of FIG. 5, begins at flow chart initiator 501 andfollows flow chart flow 502 to flow chart process 503. In flow chartprocess 503, the computer user using integrated data modeling softwareexecuting on a computer processor, such as computer processor 4 ofapparatus 100 depicted in FIG. 1, defines and configures a data contententity for the integrated ERD, such as data content entity 405 ofintegrated ERD 400 depicted in FIG. 4. As part of flow chart process503, the data content entity is created in an integrated ERD as auniquely named ERD object, and data attributes are added to the datacontent entity as required by the computer user configuring the datacontent entity 405. The data attributes of a data content entity wouldbe used to define and identify unique instances of data content and torecord the unique data content memory location of the specific datacontent data file. Once flow chart process 503 has been completed to thesatisfaction of the computer user, flow chart flow 504 is followed toflow chart process 505.

In flow chart process 505 of flow chart 500, the computer user declaresa unique key for the data content entity that is based upon one or moreof its data attributes. A method is defined to link the data contentinstances, such as a specific spreadsheet instance or a specificdocument instance, to the data content entity either by direct storageof the data content instances or by indirect storage where a unique datacontent memory location for the data content data file is used. Theintegrated data modeling software is then used to store the designedand/or configured data content entity and its metadata in computerstorage area 520 along with the integrated ERD and other integrated datamodel metadata and information. Once flow chart process 505 has beencompleted, flow chart flow 506 is followed to flow chart decision 507 offlow chart 500 shown in FIG. 5.

In flow chart decision 507 of flow chart 500, an MRDS entity, such asMRDS entity 401 of integrated ERD 400 depicted in FIG. 4, must be addedto the integrated ERD, in at least one embodiment of the presentapplication. The computer user decides if the appropriate MRDS entityexists or if a new MRDS entity needs to be designed and/or configured.If the appropriate MRDS entity already exists, flow chart flow 508 a isfollowed to flow chart process 509. If a new MRDS entity must bedesigned and/or configured, flow chart 508 b is followed to flow chartprocess 513.

In flow chart process 513 of flow chart 500, an MRDS specification wouldnormally be developed before the MRDS entity is designed and/orconfigured. Configuring a proper MRDS entity is more complex thanconfiguring most data entities since the MRDS entity must be reusable asmaster reference metadata for a vast majority of integrated data systemsinstantiated from their integrated data models. As such, this reusableMRDS entity must be designed and/or configured to support enforcement ofdata integrity between these integrated data systems by defining one ormore common entity relationships to be shared by the MRDS entity thatmay be instantiated as MRDS tables of as MRDS files in each integrateddata system. The MRDS specification, in at least one embodiment of thepresent application, should address the plurality of unique masterreference data records and the MRDS data structure along with themultiple data functions that support interoperability and datacompatibility among the resultant integrated data systems. Uponcompletion, the MRDS specification is stored in computer storage area521. When flow chart process 513 is completed, flow chart flow 514 isthen followed to flow chart process 515 as depicted in flow chart 500 ofFIG. 5.

In flow chart process 515 of flow chart 500, the MRDS entity or group ofrelated MRDS entities are designed and/or configured to the MRDSspecification defined in flow chart process 513. These MRDS entities aredesigned and/or configured using an integrated data modeling programexecuting on a computer processor, such as computer processor 4 ofapparatus 100 depicted in FIG. 1. A graphical depiction of the MRDSentity is added to an integrated ERD as part of the configurationprocess and that integrated ERD is included as part of the integrateddata model. Once the MRDS entity or group of related MRDS entities havebeen designed and/or configured, they are stored in computer storagearea 521 as part of the integrated data model including the integratedERD. Once the MRDS entities have been saved, flow chart flow 516 isfollowed to flow chart process 517.

In flow chart process 517 of flow chart 500, the plurality of uniquemaster reference data records are developed that would be used inconjunction with integrated data systems that are data systeminstantiated from the associated MRDS entities. The plurality of uniquemaster reference data records should be placed into an MRDS table or anMRDS file to insure total compatibility between the data systemstructures and the data records. These populated MRDS tables or MRDSfiles will become the global “golden” copy of the plurality of uniquemaster reference data records to be used by all other integrated datasystems that are based upon the same MRDS. Integrated data systems,interacting with the global MRDS tables or MRDS files, may have acomplete copy of the plurality of unique master reference data recordsdistributed to them, or may only require a subset of the plurality ofunique master reference data records depending upon the number of datarecords, how much of the plurality of unique master reference datarecords is needed, and the frequency of chronological changes thatimpact the freshness of the plurality of unique master reference datarecords. In any event, the plurality of unique master reference datarecords stored within its MRDS data structures is a key to compliancewith standardized data integration. Once the global MRDS tables or MRDSfiles and global plurality of unique master reference data records hasbeen defined and developed, that information is stored in computerstorage area 521. Once flow chart process 517 is complete, processcontrol is passed to flow chart flow 518 which is followed to flow chartflow 508 a where process control continues on to flow chart process 509as depicted in flow chart 500.

In flow chart process 509 of flow chart 500 shown in FIG. 5, a list ofavailable MRDS entities will be displayed for the computer user toselect the one MRDS entity that needs to be added to the currentintegrated ERD of the integrated data model. The list of available MRDSentities is retrieved from computer storage area 521, which is stored incomputer memory 8 of apparatus 100, by computer processor 4 of apparatus100 under enhanced data modeling program control and displayed ondisplay device 6 of apparatus 100. Using interactive device 2 ofapparatus 100, the computer user selects the MRDS entity of interest anda copy of the MRDS entity is added into the current integrated ERD.MRDSs could be selected from a list or spreadsheet of available MRDSsand related information or could be selected from an ERD which showsonly available MRDS entities. The computer user utilizing integrateddata modeling software then adds any data entity relationships that areneeded to incorporate the selected MRDS entity into the integrated ERD.Once the updated integrated ERD has stored in computer storage area 520,flow chart process 509 is complete. Flow chart flow 510 then passes flowcontrol to flow chart decision 511 as depicted in flow chart 500 of FIG.5.

In flow chart decision 511 of flow chart 500 shown in FIG. 5, thecomputer user determines if another MRDS entity is required to completethe integrated ERD. If more MRDS entities are needed, flow control ispassed to flow chart flow 512 a which returns flow chart control to flowchart decision 507. If the integrated ERD is complete, flow control ispassed to flow chart flow 512 b, which passes flow control to flow chartterminator 519.

Interestingly, from the integrated ERD shown in FIG. 4, it can be shownthat all integrated ERDs, when properly designed and/or configured,implemented, and maintained, will support data integration with allother integrated ERDs. Since data content entities may be used with allforms of data that may be stored in computer memory, all data incomputer memory may now be data modeled using integrated data modelingmethods. It is most important that MRDS entities be defined and sharedamong integrated ERDs as these MRDS entities are the basis of integratedERD federation and consolidation.

FIG. 6 depicts a first integrated ERD 600 a and a second integrated ERD600 b in federated ERD 600. First integrated ERD 600 a is comprised ofMRDS entities 401 a, 402 a, 403 a, and 404 a, from common data entity601 a and from data entities 602, 603, and 604. First integrated ERD 600a is also comprised of data entity relationships 607, 608, 609, 610,611, 612, 613, and 614 a. Second integrated ERD 600 b is comprised ofMRDS entities 401 b, 402 b, 403 b, and 404 b, from common data entity601 b, and from data entities 605, and 606. Second integrated ERD 600 bis also comprised of data entity relationships 614 b, 615, 616, 617,618, and 619. First integrated ERD 600 a and second integrated ERD 600 bshare common entity relationships 620, 621, 622, 623, and 624.

One form of ERD integration would be the federation of integrated ERDs,such as the federation of integrated ERD 600 a and of integrated ERD 600b shown in federated ERD 600 of FIG. 6. Integrated ERD federation is amethod of temporarily joining two or more integrated ERDs into afederated ERD, such as federated ERD 600. Federated ERD 600, shown inFIG. 6, shows the common entity-relationships between integrated ERDssuch as common entity-relationships 620, 621, 622, 623, and 624. Anygroup of integrated ERDs may be federated provided they comply withstandardized data integration in that they each share at least onecommon copy of an MRDS entity such as first copy of the first MRDSentity 401 a and second copy of the first MRDS entity 401 b of federatedERD 600. A federated ERD is used to depict common entity relationshipsbetween multiple integrated ERDs and could be displayed on a computerdisplay device, such as display device 6 of apparatus 100 depicted inFIG. 1. A federated ERD may also be stored in computer memory such ascomputer memory 8 depicted in apparatus 100 as shown in FIG. 1.

The integrated ERDs to be federated may exist in a single integrateddata model or may exist in multiple integrated data models. Integrateddata models need to be used to support federated ERDs as prior art datamodels do not address the designation of a plurality of unique masterreference data records that are needed to support MRDS entities.

Since the two integrated ERDs shown in FIG. 6 share several copies ofthe same MRDS entities and a set of common data entities, these twointegrated ERDs contain the structural metadata commonality and the datarecord commonality needed to form a federated ERD. In fact, sinceintegrated ERD 400 shown in FIG. 4 shares the copies of the same MRDSentities with the integrated ERD 600 a and integrated ERD 600 b of FIG.6, integrated ERD 400 could also be federated with either integrated ERD600 a or 600 b or federated with both integrated ERDs 600 a and 600 b ofFIG. 6. When the integrated ERD 400 of FIG. 4 and the 2 integrated ERDsof FIG. 6 are individually data system instantiated, any data valuesfrom any of these integrated data systems may be directly anddynamically joined with data from any of the other integrated datasystems.

FIG. 6 depicts four sets of MRDS entity copies. The first MRDS entitycopies 401 a and 401 b both labeled “AX”, the second MRDS entity copies402 a and 402 b both labeled “BX”, the third MRDS entity copies 403 aand 403 b both labeled “CX”, and the fourth MRDS entity copies 404 a and404 b both labeled “DX”. FIG. 6 also contains common data entities 601 aand 601 b both labeled “F”. MRDS entities and common data entities aredesigned and/or configured to support the formation of common entityrelationships between multiple ERDs based upon a unique key shared byeach set of MRDS entity copies and a unique key shared by this set ofcommon data entities.

Common entity relationships, such as 620, 621, 622, 623 and 624, depictdesigned and/or configured data system access paths that will be datasystem instantiated between integrated data systems. These designedand/or configured data system access paths will be viable provided thedata integrity is enforced among these integrated data systems. Commonentity relationships indicate that a unique key in each set of MRDSentity copies and the unique key in each set of common data entities areeach structurally identical. Each set of MRDS entity copies will beassociated with their plurality of unique master reference data recordsthat will be used in all integrated data systems to enforce dataintegrity between each set of MRDS table copies.

In accordance with at least on embodiment of the present invention, amethod is provided, which can be called a “method of integrated ERDconsolidation”. This method may be used to consolidate multiple sourceintegrated ERDs into a single target integrated ERD. The sourceintegrated ERDs to be consolidated, in at least one embodiment, must bedesigned and/or configured specifically to support this form ofintegrated ERD consolidation. Since the target integrated ERD requiresthat its data entity names are unique and that within each data entityits attribute names are unique, the source integrated ERDs, in at leastone embodiment, must share a common dictionary of data entities and ofdata attributes. When the source integrated ERDs are consolidated, thedata entity names must be from a common set of data entity names thathave been consistently applied when configuring the source integratedERDs. In addition, within each data entity, each data attribute name, inat least one embodiment, must also be from a common set of dataattributes. Within this common dictionary of data attributes, eachattribute, in at least one embodiment, must also have a declared datatype so that data type conflicts do not occur upon integrated ERDconsolidation. Within each data entity of the dictionary, one or moreunique keys, in at least one embodiment, must be defined so that uponconsolidation, unique identifications for consolidated data entities arenot in conflict. The source integrated ERDs to be consolidated may existin one or more integrated data models provided that these integrateddata model share a common dictionary of data entities and of dataattributes. Since integrated ERD's also define a plurality of uniquedata records for each common data entity and for each MRDS entity, anyintegrated ERD to be consolidated needs to have the same plurality ofunique data records defined for each common data entity copy and foreach MRDS entity copy. Therefore, the plurality of unique data recordsassociated with each common data entity and with each MRDS entity mayalso be a part of the dictionary of common data entities and of commondata attributes and associated with each pertinent data entity copy.

FIG. 7 represents integrated ERD 700 which is a consolidation of theintegrated ERDs from federated ERD 600 shown in FIG. 6. Integrated ERD700 is comprised of MRDS entities 401 c, 401 c, 403 c, and 404 c, alongwith common data entity 601 c, and data entities 602 a, 603 a, 604 a,605 a, and 606 a. Data entity relationships 607 a, 608 a, 609 a, 610 a,611 a, 612 a, 613 a, 614 c, 615 a, 616 a, 617 a, 618 a, and 619 a arealso shown in integrated ERD 700.

MRDS entities 401 c, 401 c, 403 c, and 404 c of integrated ERD 700 areidentical copies of MRDS entities 401, 402, 403, and 404 respectivelyshown in integrated ERD 400 of FIG. 4. First MRDS entity copy 401 c ofintegrated ERD 700 was formed by consolidation of first MRDS entitycopies 401 a and 401 b of federated ERD 600 shown in FIG. 6. Second MRDSentity copy 402 c of integrated ERD 700 was formed by consolidation ofsecond MRDS entity copies 402 a and 402 b of federated ERD 600 shown inFIG. 6. Third MRDS entity copy 403 c of integrated ERD 700 was formed byconsolidation of third MRDS entity copies 403 a and 403 b of federatedERD 600 shown in FIG. 6. Fourth MRDS entity copy 404 c of integrated ERD700 was formed by consolidation of fourth MRDS entity copies 404 a and404 b of federated ERD 600 shown in FIG. 6.

Common data entity 601 c of integrated ERD 700 is a consolidation ofcommon data entities 601 a and 601 b federated ERD 600 shown in FIG. 6,where common data entity 601 a is an identical copy of common entity 601b.

Data entities 602 a, 603 a, 604 a, 605 a, and 606 a of integrated ERD700 are copies of data entities 602, 603, 604, 605, and 606 respectivelyof federated ERD 600 shown in FIG. 6. When the integrated ERDs offederated ERD 600 are consolidated, these data entities are merelycopied as they are unique within federated ERD 600 as opposed to beingshared as in the case for the four sets of MRDS entity copies and thecommon data entities.

Data entity relationships 607 a, 608 a, 609 a, 610 a, 611 a, 612 a, 613a, 615 a, 616 a, 617 a, 618 a, and 619 a of integrated ERD 700 arecopies of 607, 608, 609, 610, 611, 612, 613, 615, 616, 617, 618, and 619respectively of federated ERD 600 of FIG. 6. These data entityrelationships are each unique within federated ERD 600 and as such onlyneed to be copied to form integrated ERD 700 as shown in FIG. 7. Dataentity relationship 614 c of integrated ERD 700 is a consolidation ofdata entity relationships 614 a and 614 b for federated ERD 600 of FIG.6. These two shared data entity relationships from federated ERD 600, inat least one embodiment, need to be consolidated since both reflect thesame relationship between two sets of entities that are consolidated inintegrated ERD 700 of FIG. 7.

Enterprise data models are a prior art form of data modeling methodswhere the scope of the data model is the entire enterprise's data. Thisenterprise data modeling method was popular in the 1990's. Enterprisedata models were complex and therefore expensive to develop. Whenmultiple databases were data system instantiated from a singleenterprise data model, these multiple databases were still isolatedinformation silos because these enterprise data modeling methods did notaddress the database interoperability needed to integrate databases.While enterprise data models did provide some data structure commonalitybetween data system instantiated databases, these enterprise data modelsdid not address the use of common master reference data records forexample. While enterprise data models were often used to data systeminstantiate multiple databases, these established data modeling methodswere never engineered to form integrated data systems.

With integrated data modeling methods, there is no self-imposed scopesuch as an entire enterprise. An integrated data model may have a scopebeyond the enterprise that includes portions of multiple enterprises andexternal data providers. For this reason, we do not use the termenterprise data model. In addition, a consolidation of multipleintegrated ERDs or a federation of multiple integrated ERDs is nowpossible so that any integrated ERDs may now be combined eithervirtually, as in the federated form or physically, as in theconsolidated form. It is also now possible to derive a singleconsolidated integrated ERD or a federated ERD that would be equivalentin scope to an enterprise data model. Of course a major difference isthat integrated data models are engineered to data system instantiatemultiple integrated data systems while enterprise data models are not.

FIG. 8 is a depiction of flow chart 800 that represents a method used toconsolidate two integrated ERDs into a single integrated ERD, such asintegrated ERD 700 shown in FIG. 7 was consolidated from the twointegrated ERDs 600 a and 600 b of federated ERD 600 shown in FIG. 6.Flow chart 800 of FIG. 8 is comprised of flow chart initiator 801, flowchart processes 803, 805, 809, and 813, along with flow chart decisions807 and 811, as well as flow chart flows 802, 804, 806, 808 a, 808 b,810, 812 a, 812 b, and 814, along with flow chart terminator 815. Flowchart 800 also uses computer storage areas 520, 521, 522, and 523 wherethese computer storage areas are the same computer storage areasdepicted in flow chart 500 shown in FIG. 5. These computer storage areasprovide a process to dynamically combine data management methods such asthe methods depicted in flow charts 500, 800, 900, 1300, and 1400 shownin FIGS. 5, 8, 9, 13, and 14 respectively.

The method of flow chart 800, in at least one embodiment is programed toexecute on computer processor 4 with computer user interaction usinginteractive device 2 and using computer storage areas in computer memory8 of apparatus 100 that is depicted in FIG. 1.

Flow chart 800, shown in FIG. 8, begins at flow chart initiator 801 withcomputer processor 4 executing software stored in computer memory 8.Under computer control, flow chart flow 802 is followed to flow chartprocess 803. Within flow chart process 803, a computer user creates anew integrated ERD or selects, from a list of available integrated ERDsdisplayed on computer display device 6, the integrated ERD to beaccessed from computer storage area 520 to be a first source integratedERD. The computer user then creates a new integrated ERD or selects fromthe same list of available ERDs, an integrated ERD as the second sourceintegrated ERD. The two source integrated ERDs, such as the integratedERDs 600 a and 600 b of federated ERD 600 of FIG. 6, may be displayed oncomputer display device 6 as a federated ERD. Once the two sourceintegrated ERDs have been configured, flow chart process 803 is completeand flow chart flow 804 is followed to flow chart process 805.

In flow chart process 805 of flow chart 800 shown in FIG. 8, the twosource integrated ERDs from flow chart process 803 are copied bycomputer processor 4 into a previously empty ERD. The new integrated ERDmay be in the same integrated data model as the one of the sourceintegrated ERDs or may be an entirely different integrated data model.Once the two source integrated ERDs have been copied, flow chart controlis passed to flow chart flow 806 which is followed to flow chartdecision 807.

In flow chart decision 807, computer processor 4 is programmed to locateduplicate MRDS entities in the source integrated ERDs to beconsolidated. When a duplicate MRDS entity is located, flow chart flow808 a is followed to flow chart process 809. Once no duplicate MRDSentities are found, flow chart flow 808 b is followed to flow chartdecision 811.

In flow chart process 809 of flow chart 800 shown in FIG. 8, computerprocessor 4 is programmed to remove one of the duplicate set of MRDSentities while moving the data entity relationships attached to theremoved MRDS entity to the remaining MRDS entity of the set of MRDSentities. For example, MRDS entities 401 a and 401 b shown in federatedERD 600 of FIG. 6 represent a set of duplicate MRDS entities. Ifcomputer processor 4 removes MRDS entity 401 b of federated ERD in FIG.6, data entity relationship 615 which was attached to MRDS entity 401 bmust now instead be attached to MRDS entity 401 a. The result is shownin integrated ERD 700 as MRDS entity 401 c data entity 605 a and as dataentity relationship 615 a. In the example of the two integrated ERDs ofFIG. 6, duplicate MRDS 401 b, 402 b, 403 b, and 404 b will be removedunder program control of computer processor 6 of apparatus 100 shown inFIG. 1. As the duplicate MRDS entities are removed, the common entityrelationships will also be removed, such as common entity relationships620, 621, 622, and 624 of federated ERD 600 shown in FIG. 6. Data entityrelationship 615 will be detached from MRDS entity 401 b and reattachedto MRDS 401 a, data entity relationship 616 will be detached from MRDSentity 402 b and reattached to MRDS entity 402 a, data entityrelationship 614 b will be detached from MRDS entity 403 b andreattached to MRDS entity 403 a, and data entity relationship 619 willbe detached from MRDS entity 404 b and reattached to MRDS entity 404 a.Each modification of the integrated ERD is stored in computer storagearea 520.

Once all of the duplicate MRDS entities have been removed from theintegrated ERDs, flow chart flow 808 b is followed to flow chartdecision 811. If the computer processor finds duplicate common dataentities in the integrated ERDs, flow control is transferred to flowchart flow 812 a which is followed to flow chart process 813. If thecomputer processor does not find duplicate common data entities, theintegrated ERD is stored in computer storage area 520, and updates todatabase structures and to data content management structures may thenbe made in computer storage areas 522 and 523 before flow control istransferred to flow chart flow 812 b which is followed to flow chartterminator 815.

In flow chart process 813 of flow chart 800 shown in FIG. 8, computerprocessor 4 is programmed to remove one of the duplicate set of commondata entities while moving the data entity relationships attached to theremoved common data entity to the remaining common data entity. Forexample, common data entity 601 a and 601 b, shown in federated ERD 600of FIG. 6, represent a set of duplicate common data entities. Ifcomputer processor 4 removes common data entity 601 b of federated ERD600, data entity relationship 614 b which was attached to common dataentity 601 b must instead be attached to common data entity 601 a offederated ERD 600. When the duplicate common data entity is removed, thecommon entity relationship, such as common entity relationship 623 offederated ERD 600, will also be removed. Once the duplicate common dataentity has been removed and all displaced data entity relationshipsattached to the remaining common data entity, computer storage area 520is updated with the changes. Once flow chart process 813 of flow chart800 is complete, process control is passed back to flow chart decision811 as depicted by flow chart flow 814. Again, once all duplicate commondata entities have been removed as determined at flow chart decision811, the method is terminated at flow chart terminator 815 as depictedin flow chart 800 of FIG. 8.

The process of consolidating integrated ERDs from federated ERDs istotally reversible. Therefore, in accordance with at least on embodimentof the present invention, a method is provided, which can be called a“method of splitting an integrated ERD”. This method may be used tosplit a single integrated ERD into consolidated multiple integratedERDs. For example, an integrated ERD, such as integrated ERD 700 of FIG.7, may also be split into two or more integrated ERDs, such asintegrated ERDs 600 a and 600 b of federated ERD 600 of FIG. 6, usingmethods such as that depicted in flow chart 900 shown in FIG. 9.

Flow chart 900 contains flow chart initiator 901, flow chart processes903, 905, 907, 909, 911, and 913, as well as flow chart flows 902, 904,906, 908, 910, 912, and 914, with flow chart terminator 915 and computerstorage areas 520, 521, 522, and 523. Computer storage areas 520, 521,522, and 523 are the same computer storage areas as found in flow charts500 and 800 which are depicted in FIG. 5 and FIG. 8, respectively. Thesecomputer storage areas 520, 521, 522, and 523 provide a means to combinedata modeling methods and database implementation methods to form and tomaintain integrated ERDs, integrated data models, integrated databases,and integrated CMSs.

Flow chart 900 begins at flow chart initiator 901 where process controlis passed to flow chart process 903 as indicated by flow chart flow 902.In flow chart process 903 of flow chart 900, the computer user ispresented with a list of integrated ERDs on display device 6 retrievedfrom computer storage area 520 of computer memory 8 under the control ofcomputer processor 4 of apparatus 100 shown in FIG. 1. The computer userselects the integrated ERD to be split into two integrated ERDs usinginteractive device 2 of apparatus 100 shown in FIG. 1. The selectedintegrated ERD, such as integrated ERD 700 shown in FIG. 7, isassociated with a first integrated data model. Once the computer userhas selected the integrated ERD to split into two integrated ERDs, flowchart process 903 is complete and program control is passed to flowchart process 905 as indicated by flow chart flow 904.

In flow chart process 905 of flow chart 900 shown in FIG. 9, theintegrated ERD, selected in flow chart process 903, is copied into twopreviously blank integrated ERDs and these two copied integrated ERDsare stored into computer storage area 520. The two copied integratedERDs may be associated with the first integrated data model that isalready associated with the selected integrated ERD, or they may bestored in one or two other integrated data models. With any option, theintegrated ERDs will remain integrated because the MRDS entities and thecommon data entities form the bases of compatibility across integratedERDs and across integrated data models. Once the integrated ERD copieshave been made and stored in computer storage area 520, flow chartprocess 905 is complete and process control is passed to flow chartprocess 907 as indicated by flow chart flow 906.

In flow chart process 907 of flow chart 900 shown in FIG. 9, thecomputer user uses the integrated data modeling software to review thefirst copied integrated ERD being displayed on display device 6 ofapparatus 100 shown in FIG. 1. Using the integrated data modelingsoftware, the computer user deletes selected data entities from thefirst copied integrated ERD. When a data entity is deleted from an ERD,any data entity relationships that are attached to that deleted dataentity are also deleted by computer processor 4 of apparatus 100 shownin FIG. 1. For example, the computer user may be presented withintegrated ERD 700 as shown in FIG. 7. If the computer user selects todelete data entity 605 a, computer processor 4 will also delete dataentity relationships 615 a, 616 a, and 617 a. If the computer user thendecides to delete data entity 606 a, computer processor 4 will alsodelete data entity relationships 618 a and 619 a having had data entityrelationship 617 a already being deleted with data entity 605 a. Bydeleting data entities 605 a and 606 a from integrated ERD 700 shown inFIG. 7, the integrated ERD results that is formed by MRDS entities 401a, 402 a, 403 a, and 404 a, along with common data entity 601 a and dataentities 602, 603, and 604 shown in federated ERD 600 of FIG. 6. Oncethe computer user deletes the selected data entities, the updatedintegrated ERD is stored in computer data storage area 520 which is asection of computer memory 8 of apparatus 100 shown in FIG. 1. Once thecomputer user is finished deleting data entities, flow chart process 907is complete and process control is passed to flow chart process 909 asindicated by flow chart flow 908.

In flow chart process 909 of flow chart 900 shown in FIG. 9, computerprocessor 4 of apparatus 100 shown in FIG. 1 executing integrated datamodeling software will delete any common data entities in the firstupdated integrated ERD that do not have at least one associated dataentity relationship to any existing data entity. Computer processor 4 ofapparatus 100 will also delete any data entity relationships associatedwith the deleted common data entity which in this case would be betweena common data entity and itself (recursive), or a second common dataentity or an MRDS entity. For example, common data entity 601 c ofintegrated ERD 700 would not be deleted, in at least one embodiment,because data entity relationships 618 a and 612 a exist between commondata entity 601 c and data entities 606 a and 604 a respectively. If,however, data entity relationships 618 a and 612 a had been deletedpreviously, then common data entity 601 c, in at least one embodiment,would be deleted by computer processor 4 of apparatus 100. Along withthe deletion of common data entity 601 c, computer processor 4 ofapparatus 100 would also delete data entity relation 614 c. Once thecommon data entities have been removed from the integrated ERD, any MRDSentity that is not related to a data entity or to a common data entityor to another MRDS entity will also be deleted by computer processor 4of apparatus 100. In integrated ERD 700, once common data entity 601 chas been deleted along with data entity relationship 614 c, computerprocessor 4 would also delete MRDS entity 403 c since MRDS entity 403 cwould not have data entity relationships with a data entity or with acommon data entity or with another MRDS entity. Once the computer isfinished deleting common data entities and MRDS entities, flow chartprocess 909 is complete and process control is passed to flow chartprocess 911 as indicated by flow chart flow 910.

In flow chart process 911 of flow chart 900 shown in FIG. 9, thecomputer user uses the integrated data modeling software to review thesecond copied integrated ERD being displayed on display device 6 ofapparatus 100 shown in FIG. 1. Using the integrated data modelingsoftware, the computer user deletes data entities from the second copiedintegrated ERD. When a data entity is deleted from an integrated ERD,any data entity relationships that are attached to that deleted dataentity are also deleted by computer processor 4 of apparatus 100 shownin FIG. 1. For example, the computer user may be presented withintegrated ERD 700 as shown in FIG. 7. If the computer user selects todelete data entity 604 a from the second copied integrated ERD, computerprocessor 4 will also delete data entity relationships 610 a, 611 a, 612a, and 613 a. If the computer user next deletes data entity 603 a fromthe second copied integrated ERD, computer processor 4 will also deletedata entity 608 a. If the computer user selected to next delete dataentity 602 a from the second copied integrated ERD, computer processor 4will delete data entity relationships 607 a and 609 a. The integratedERD that remains after these user selected deletes is comprised of MRDSentities 401 b, 402 b, 403 b, and 404 b, along with common data entity601 b and data entities 605 and 606 show in federated ERD 600 in FIG. 6.Once the computer user and computer processor completes the deletions,the updated integrated ERD is stored in computer data storage area 520which is a section of computer memory 8 of apparatus 100 shown inFIG. 1. Once the updated integrated ERD has been stored in computermemory, flow chart process 911 is complete and process control istransferred to flow chart process 913 as indicated by flow chart flow912.

In flow chart process 913 of flow chart 900 shown in FIG. 9, computerprocessor 4 of apparatus 100 shown in FIG. 1 executing integrated datamodeling software will delete any common data entities in the secondupdated integrated ERD that does not have at least one associated dataentity relationship to any existing data entity. Computer processor 4 ofapparatus 100 will also delete any data entity relationships associatedwith the deleted common data entity which in this case would be betweena common data entity and itself (recursive), or a second common dataentity or an MRDS entity. Along with the deletion of a common dataentity, computer processor 4 of apparatus 100 would also delete anyattached data entity relationships. Once the common data entities havebeen removed from the integrated ERD, any MRDS entity that is notrelated to a data entity or to a common data entity or to another MRDSentity will also be deleted by computer processor 4 of apparatus 100.Once the appropriate common data entities and MRDS entities have beendeleted along with the appropriate data entity relationships, the secondupdated integrated ERD is stored in computer storage area 520. Then,process control is passed to flow chart flow 914 which leads to flowchart terminator 915 which ends the “method of splitting an integratedERD” as depicted in flow chart 900 of FIG. 9.

In accordance with at least on embodiment of the present invention, amethod is provided, which can be called a “method of data federationwith integrated data systems”. Integrated data systems, because of theirdata integrity enforcement between integrated data systems, provide datasystem access paths that were not provided with prior art data systems.Any group of integrated data systems may now be reliably data federatedprovided they comply with standardized data integration and they shareat least one common MRDS compliant data structure where these commonMRDS compliant data structures are all populated from the same pluralityof unique master reference data records.

FIG. 10 is a depiction of two integrated databases, both populated withdata values, where the two integrated databases are joined by multiplecommon data system access paths. The first integrated database,integrated database 1000 a, is comprised of MRDS tables 1001 a, 1002 a,1003 a, and 1004 a, along with common database table 1005 a and databasetables 1006, 1007, and 1008 with foreign key constraints 1011, 1012,1013, 1014, 1015, 1016, 1017, and 1018 a. The second integrateddatabase, integrated database 1000 b, is comprised of MRDS tables 1001b, 1002 b, 1003 b, and 1004 b, along with common database table 1005 band database tables 1009, and 1010 with foreign key constraints 1018 b,1019, 1020, 1021, 1022, and 1023. The boundary between first integrateddatabase 1000 a and second integrated database 1000 b is demarcated byline 1029 in FIG. 10. MRDS tables 1001 a and 1001 b are compliant withthe same first MRDS specification, MRDS tables 1002 a and 1002 b arecompliant with the same second MRDS specification, MRDS tables 1003 aand 1003 b are compliant with the same third MRDS specification, andMRDS tables 1004 a and 1004 b are compliant with the same fourth MRDSspecification. Each pair of compliant MRDS tables shares one or morecommon data system access paths between the first database and thesecond database. Common database tables 1005 a and 1005 b share a commonunique index and were populated with data values from a common source ofdata and, as such, share a data system access path between the firstdatabase and the second database.

First integrated database 1000 a depicted in FIG. 10 is data systeminstantiated from first integrated ERD 600 a of federated ERD 600depicted in FIG. 6. MRDS tables 1001 a, 1002 a, 1003 a, and 1004 a ofFIG. 10 are data system instantiated from MRDS entities 401 a, 402 a,403 a, and 404 a respectively of federated ERD 600. Common databasetable 1005 a of FIG. 10 is data system instantiated from common dataentity 601 a depicted in FIG. 6. Database tables 1006, 1007, and 1008 ofthe first integrated database depicted in FIG. 10 are data systeminstantiated from data entities 602, 603, and 604, respectively for thefirst integrated ERD of federated ERD 600. Foreign key constraints 1011,1012, 1013, 1014, 1015, 1016, 1017, and 1018 a of the first integrateddatabase depicted in FIG. 10 are data system instantiated from dataentity relationships 607, 608, 609, 610, 611, 612, 613, and 614 arespectively of the first integrated ERD of federated ERD 600 shown inFIG. 6.

Second integrated database 1000 b depicted in FIG. 10 is data systeminstantiated from second integrated ERD 600 b of federated ERD 600depicted in FIG. 6. MRDS tables 1001 b, 1002 b, 1003 b, and 1004 b ofFIG. 10 are data system instantiated from MRDS entities 401 b, 402 b,403 b, and 404 b respectively of federated ERD 600. Common databasetable 1005 b of the second integrated database of FIG. 10 is data systeminstantiated from common data entity 601 b of the second integrated ERDof federated ERD 600 depicted in FIG. 6. Database tables 1009, and 1010of the second integrated database depicted in FIG. 10 are data systeminstantiated from data entities 605, and 606 respectively for the secondintegrated ERD of federated ERD 600. Foreign key constraints 1018 b,1019, 1020, 1021, 1022, and 1023 of the second integrated databasedepicted in FIG. 10 are data system instantiated from data entityrelationships 614 b, 615, 616, 617, 618, and 619 respectively of thesecond integrated ERD of federated ERD 600 shown in FIG. 6. Data systemaccess paths 1024, 1025, 1026, 1027, and 1028 depicted in FIG. 10 aredata system instantiated from common entity relationships 620, 621, 622,623, and 624 respectively from federated ERD 600 shown in FIG. 6.

In accordance with at least one embodiment of the present invention, amethod is provided, which can be called a “method of data systemconsolidation from integrated data systems”. This method may be used toconsolidate multiple integrated data systems that have been populatedwith data values into a single coherent integrated data system that ispopulated with all the data values consolidated from the sourceintegrated data systems. The source integrated data systems, to beconsolidated without data transformations, must be designed and/orconfigured specifically to support this form of data systemconsolidation and also must have their pluralities of unique masterreference data records properly managed and maintained.

FIG. 11 depicts integrated database 1100, which is populated with datavalues, that results when the two source integrated databases, such asintegrated database 1000 a and integrated database 1000 b from FIG. 10which were also populated with data values, are consolidated into asingle integrated database. Database 1100, shown in FIG. 11, iscomprised of MRDS tables 1001 c, 1001 c, 1003 c, and 1004 c, along withcommon database table 1005 c, and database tables 1006 a, 1007 a, 1008a, 1009 a and 1010 a, as well as foreign key constraints 1011 a, 1012 a,1013 a, 1014 a, 1015 a, 1016 a, 1017 a, 1018 c, 1019 a, 1020 a, 1021 a,1022 a, and 1023 a. MRDS tables 1001 c of integrated database 1100 iscompliant with the same first MRDS specification as are MRDS tables 1001a and 1001 b of FIG. 10. MRDS tables 1002 c of integrated database 1100is compliant with the same second MRDS specification as are MRDS tables1002 a and 1002 b of FIG. 10. MRDS tables 1003 c of integrated database1100 is compliant with the same third MRDS specification as are MRDStables 1003 a and 1003 b of FIG. 10. MRDS tables 1004 c of integrateddatabase 1100 is compliant with the same fourth MRDS specification asare MRDS tables 1004 a and 1004 b of FIG. 10. Common database table 1005c of integrated database 1100 share a common unique index with commondatabase tables 1005 a and 1005 b of FIG. 10 and as such share a datasystem access path, such as data system access path 1027 shown in FIG.10, between the three integrated databases 1000 a, 1000 b, and 1100.Database table 1001 c has the same structure as database tables 1001 a &1001 b, but will have data records consolidated from both databasetables 1001 a & 1001 b. Database table 1007 from FIG. 10 is the same asdatabase table 1007 a from FIG. 11 in both structure and in having thesame data records; however these two database tables could be indifferent databases.

In the prior art, attempting to consolidate two or more databases into asingle database without data transformations was not possible for avariety of reasons. When prior art databases were designed and/orconfigured, not all of data integration criteria needed for theformation of integrated databases were addressed. For example, commondatabase tables and MRDS tables were not designated and pluralities ofunique master reference data records were not designated, andinteroperability between databases was not designed and/or configuredinto prior art database tables.

FIG. 12 represents a detailed view 1200 of MRDS tables 1001 a, 1001 b,and 1001 c. MRDS table 1001 a label is “Y.AX”, which indicates that thisMRDS table named “AX” is found in the integrated database named “Y” thatis the same database table as MRDS table 1001 a of integrated database1000 a shown in FIG. 10. MRDS table 1001 a would be considered a firstcopy of a first MRDS table. MRDS table 1001 b label is “Z.AX”, whichindicates that this MRDS table named “AX” is found in the integrateddatabase named “Z” that is the same database table as MRDS table 1001 bof integrated database 1000 b shown in FIG. 10. MRDS table 1001 b wouldbe considered a second copy of a first MRDS table. MRDS table 1001 clabel is “YZ.AX” which indicates that this MRDS table named “AX” isfound in the integrated database named “YZ” that is the same databasetable as MRDS table 1001 c of integrated database 1100 shown in FIG. 11.In FIG. 12, MRDS table 1001 c of integrated database 1100 is formed fromthe consolidation of MRDS tables 1001 a and 1001 b of integrateddatabases 1000 a and 1000 b respectively. MRDS table 1001 c would beconsidered a third copy of a first MRDS table.

All three MRDS tables depicted in FIG. 12 have the exact same structuralcomposition, unless otherwise noted. For example, all three MRDS tablescontain the identical five database table columns. MRDS table 1001 acontains database table columns 1204 a, 1205 a, 1206 a, 1207 a, and 1208a, while MRDS table 1001 b contains MRDS table columns 1204 b, 1205 b,1206 b, 1207 b, and 1208 b, while MRDS table 1001 c contains MRDS tablecolumns 1204 c, 1205 c, 1206 c, 1207 c and 1208 c. All three MRDS tablecolumns have common column names and data types. For example, the firstdatabase table columns 1204 a, 1204 b, and 1204 c of MDRS tables 1001 a,1001 b, and 1000 c respectively are all named “AX_ID” and all are ofdata type INTEGER. The second database table columns 1205 a, 1205 b, and1205 c of MDRS tables 1001 a, 1001 b, and 1000 c respectively are allnamed “AX_Code” and all are of data type CHAR(5) indicating that alldata values of those database table columns must be a character stringof up to 5 characters in length.

All three MRDS tables 1001 a, 1001 b, and 1001 c depicted in FIG. 12contain an identical primary key constraint, contain an identical firstalternate key constraint, and contain an identical second alternate keyconstraint. The first column, of each of these MRDS tables, databasetable columns 1204 a, 1204 b, and 1204 c, have a “(PK)” designationindicating that this database table's column is declared as the primarykey constraint of its respective MRDS table. The data values in each ofthese MRDS tables' primary key column must be unique within eachdatabase table.

For each of these MRDS tables in FIG. 12, the second database tablecolumn, database table columns 1205 a, 1205 b, and 1205 c, all have a“(AK1)” designation. This “(AK1)” designation indicates that thisdatabase table's column is the first alternate key of its respectivedatabase table. The data values in each of these MRDS tables' secondcolumn, in at least one embodiment, must be unique within each databasetable because of the first alternate key constraint; however, the datavalues may be duplicated from one database table to another since eachalternate key constraint is associated to a single database table.

For each of these MRDS tables in FIG. 12, the third database tablecolumn, which are database table columns 1206 a, 1206 b, and 1206 c, allhave a “(AK2.1)” designation. This “(AK2.1)” designation indicates thatthis database table's column is declared as the first column of thesecond alternate key constraint of its respective MRDS table. The fourthdatabase table column of each of these MRDS tables, that is databasetable columns 1207 a, 1207 b, and 1207 c, have a “(AK2.2)” designation.The “(AK2.2)” designation indicates that this database table's column isdeclared as the second column of the second alternate key constraint ofits respective database table. The combination of data value pairs fromthe third and fourth database table columns, that is the secondalternate key constraint (a composite alternate key constraint), in atleast one embodiment, must be unique within each database table;however, the data value pairs may be duplicated from one database tableto another.

The fifth database table column of each of these MRDS tables, that isdatabase table columns 1208 a, 1208 b, and 1208 c, are labeled“AX_Description”. There are no unique constraints declared upon thisdatabase table column.

All three MRDS tables 1001 a, 1001 b, and 1001 c that are depicted inFIG. 12, are populated with data records such as data records 1211 a,1212 a, 1213 a, 1214 a, and 1215 a of MRDS table 1001 a, as well as datarecords 1211 b, 1214 b, 1216 b, 1217 b, and 1218 b of MRDS table 1001 b,and as well as data records 1211 c, 1211 c, 1213 c, 1214 c, 1215 c, 1216c, 1217 c, and 1218 c of MRDS table 1001 c. The set of MRDS tables,which includes MRDS tables 1001 a, 1001 b, and 1001 c depicted in FIG.12, are all populated from a first plurality of unique master referencedata records stored in computer memory at the first master data computermemory location as designated in the MRDS specification from which theplurality of MRDS tables are configured.

Please note that MRDS tables 1001 a and 1001 b both contain commonunique master reference data records, such as data record 1211 a of MRDStable 1001 a and data record 1211 b of MRDS table 1001 b. Likewise, datarecord 1214 a of MRDS table 1001 a is identical to data record 1214 b ofMRDS table 1001 b as depicted in FIG. 12. Since table 1001 c is theconsolidated MRDS table, that database table contains all of the uniquemaster reference data records (1211-1218). The letters are indicative ofthe MRDS tables where a's are for the first copy of a first MRDS table1001 a, b's are for the second copy of a first MRDS table 1001 b, andc's are for the third copy of a first MRDS table 1001 c.

In FIG. 12, MRDS tables 1001 a and 1001 b, which are populated with datarecords from a single source plurality of unique master reference datarecords, are consolidated into MRDS table 1001 c. Data record 1211 c ofMRDS table 1001 c results for the consolidation of data records 1211 aand 1211 b of MRDS tables 1001 a and 1001 b respectively. Data records1212 c and 1213 c of MRDS table 1001 c results from data records 1212 aand 1213 a respectively of MRDS table 1001 a. Data record 1214 c of MRDStable 1001 c results for the consolidation of data records 1214 a and1214 b of MRDS tables 1001 a and 1001 b respectively. Data record 1215 cof MRDS table 1001 c results from data record 1215 a of MRDS table 1001a. Data records 1216 c, 1217 c, and 1218 c of MRDS table 1001 c resultsfrom data records 1216 b, 1217 b, and 1218 b respectively of MRDS table1001 b. Again, MRDS table 1001 c may not contain duplicate masterreference data records because of the unique indexes defined to enforcethe uniqueness of the plurality of data records stored in that MRDStable.

Since MRDS tables 1001 a and 1001 b and 1001 c are a copy of the sameMRDS table, all three databases, that is database “Y”, database “Z”, anddatabase “YZ” are integrated databases that share data system accesspaths. A data system access path is defined for each unique index of theMRDS table or MRDS files provided these MRDS tables and MRDS files arepopulated from the same plurality of unique master reference datarecords. In this example, MRDS tables 1001 a, 1001 b, and 1001 c allcontain three different unique indexes; the primary index (AX_ID(PK)),the first alternate index (AX_Code(AK1)), and alternate composite index(AX_Name(AK2.1) and AX_Date(AK2.2)). Therefore, these MRDS tables sharethree data system access paths. Any of the three data system accesspaths may be used to directly join data records among these MRDS tables.

Since all three MRDS tables 1001 a, 1001 b, and 1001 c contain thecommon unique master reference data record 1211 a, 1211 b, and 1211 c,these master reference data records form a direct join for that uniquemaster reference data record between the three MRDS tables in thesethree integrated databases. However, in the case of unique masterreference data record 1212 a and 1211 c, which are identical masterreference data records, only MRDS tables 1001 a and 1001 c mayparticipate in a direct join since MRDS table 1001 b does not contain acopy of that unique master reference data record.

FIG. 13 depicts flow chart 1300 for a method of consolidating two sourceintegrated data systems, such as the two integrated databases 1000 a and1000 b depicted in FIG. 10, into a single consolidated integrated datasystem, such as the integrated database 1100 depicted in FIG. 11. Beforethe data system consolidation, both source integrated databases arepopulated with data values such as MRDS tables 1001 a and 1001 b shownin FIG. 12. The consolidated integrated database is populated with thedata values consolidated from the source integrated databases. Forexample, MRDS table 1001 c shown in FIG. 12 is part of integrateddatabase 1100 shown in FIG. 11, where MRDS table 1001 c resulted fromthe consolidation of MRDS tables 1001 a and 1001 b of source integrateddatabases 1000 a and 1000 b respectively which are shown in FIG. 10. Asshown in FIG. 12, MRDS table 1001 c is populated with data valuesconsolidated from both source integrated databases.

The consolidation of two integrated data systems is the most complexform of standardized data integration since the data integrationrequirements are most stringent. In order to consolidate integrateddatabases, the database structures of the two source integrateddatabases must be compatible, with multiple MRDS tables or multiplecommon database tables or combinations of these types of databasetables. With MRDS tables and common database tables, database structurecommonality and master reference data record commonality is incorporatedinto each integrated database in such a method as to address thecritical data integration factors needed to support data systemconsolidation.

Flow chart 1300, shown in FIG. 13, is comprised of flow chart initiator1301, and of flow chart processes 1303, 1305, 1307, 1311, 1315 and 1317,and flow chart decisions 1309 and 1313, along with flow chart flows1302, 1304, 1306, 1308, 1310 a, 1310 b, 1312, 1314 a, 1314 b, 1316, and1318, along with flow chart terminator 1319. The flow chart usescomputer storage areas 520, 521, 522, 523, which is the same datastorage area as the four computer storage areas depicted in flow charts500, 800, and 900 of FIG. 5, FIG. 8 and FIG. 9 respectively. Thesecomputer storage areas provide a means to combine methods used toconfigure, data system instantiate, and maintain integrated ERDs,integrated data models, integrated data systems, and integrated CMSs.

Flow chart 1300 begins at flow chart initiator 1301 under programcontrol with computer processor 4 executing software stored in computermemory 8 of apparatus 100 depicted in FIG. 1. Under computer control,flow chart flow 1302 is followed to flow chart process 1303 where thecomputer user selects two integrated data systems, referred to as twosource integrated data systems, to be consolidated into a singleintegrated data system. The computer user may select both sourceintegrated data systems using a list of existing source integrated datasystems retrieved by a computer processor, such as computer processor 4of apparatus 100 depicted in FIG. 1, from computer data storage area 522and computer storage area 523 where these computer storage areas existin computer memory such as computer memory 8 of apparatus 100. Once thesource integrated data systems have been identified, flow chart process1303 is complete and computer process control is passed to flow chartprocess 1305 as depicted by flow chart flow 1304 of flow chart 1300.

In flow chart process 1305 of flow chart 1300, a computer processor isprogramed to consolidate the two source integrated data systems by firstconsolidating there associated integrated ERDs. If an up to dateintegrated ERDs are not available for the source integrated datasystems, the integrated data modeling software should be used toreverse-engineer the two integrated ERDs from the two source integrateddata systems. For example, integrated databases 1001 a and 1001 bdepicted in FIG. 10 could both be reverse-engineered resulting in thetwo integrated ERDs, integrated ERDs 600 a and 600 b of federated ERD600 depicted in FIG. 6. Once the two integrated ERDs are stored incomputer storage area 521, they may be consolidated into a singleintegrated ERD, such as integrated ERD 700, using the integrated ERDconsolidation method depicted in flow chart 800 shown in FIG. 8. Oncethe consolidated integrated ERD, such as integrated ERD 700 of FIG. 7,has been completed by computer processor 4 and stored in computerstorage area 521, which is a portion of computer memory 8 of apparatus100 shown in FIG. 1, flow chart process 1305 has been completed.Computer processor control will pass to flow chart process 1307 asindicated by flow chart flow 1306.

In flow chart process 1307 of flow chart 1300, the consolidatedintegrated ERD will be data system instantiated to form the consolidatedintegrated data system. For example, consolidated integrated ERD 700depicted in FIG. 7, may be data system instantiated using the integrateddata modeling software executing on computer processor 4 of apparatus100 depicted in FIG. 1, to form integrated database 1100 depicted inFIG. 11. Once the integrated data system, which supports consolidationof the two selected integrated data systems, has been data systeminstantiated, flow chart process 1307 is complete. Computer processorcontrol is then passed to flow chart decision 1309 as indicated by flowchart flow 1308.

Now that the consolidated data system structures have been completelydata system instantiated, the actual data values from the two sourceintegrated data systems may now be stored in this consolidated datasystem. In flow chart decision 1309 of flow chart 1300, computerprocessor 4 of apparatus 100 is programed to determine if the two sourceintegrated data systems contain a shared MRDS table or MRDS file. If ashared MRDS table or MRDS file has been found that has not yet beenprocessed, program control is passed to flow chart process 1311 asindicated by flow chart flow 1310 a, while if all shared MRDS tables andMRDS files have been processed, program control is passed to flow chartdecision 1313 as indicated by flow chart flow 1310 b.

In flow chart process 1311 of flow chart 1300 shown in FIG. 13, the datavalues from both source integrated data systems shared MRDS tables areused to populate the MRDS table or MRDS file of the consolidatedintegrated data system. For example, data values from source MRDS table1001 a and data values from source MRDS table 1001 b are used topopulate consolidated MRDS table 1001 c as depicted in FIG. 12. Theunique database indexes of the MRDS tables will insure that no duplicatedata records are stored in any MRDS table. For example, when MRDS table1001 a and MRDS table 1001 b are consolidated, the result would be MRDStable 1001 c shown in FIG. 12 where duplicate data records are notpossible because of the primary key constraint placed upon MRDS tablecolumn 1001 c. Once the consolidated MRDS table has been populated withdata values, flow chart process 1311 is complete. Program control ispassed back to flow chart decision 1309 as indicated by flow chart flow1312.

Once all the shared MRDS tables and MRDS files from the two sourceintegrated data systems have been processed, program control is passedto flow chart decision 1313 as indicated by flow chart flow 1310 b. Inflow chart decision 1313 of flow chart 1300, a computer processor, suchas computer processor 4 of apparatus 100 depicted in FIG. 1, isprogramed to determine if the two source integrated data systems containa shared common database table. If a shared common database table hasbeen found that has not yet been processed, program control is passed toflow chart process 1315 as indicated by flow chart flow 1314 a. If allshared common database tables have been processed, program control ispassed to flow chart process 1317 as indicated by flow chart flow 1314b.

In flow chart process 1315 of flow chart 1300 shown in FIG. 13, the datavalues from both source integrated data system's shared common databasetables or common data system data files are used to populate the commondatabase table or common data system data file of the consolidatedintegrated data system. For example, data values from source commondatabase table 1005 a and data values from source common database table1005 b, both depicted in FIG. 10, are used to populate consolidatedcommon database table 1005 c as depicted in consolidated integrateddatabase 1100 shown in FIG. 11. The unique database indexes of commondatabase table 1005 c will insure that no duplicate data records arestored in this common database table. What results is a union of thesource common database table data records in the consolidated commondatabase table. Once the consolidated database table has been populatedwith data values, flow chart process 1315 is complete. Program controlis passed back to flow chart decision 1313 as indicated by flow chartflow 1316 of flow chart 1300 shown in FIG. 13.

In flow chart process 1317 of flowchart 1300, the data values for theremainder of the consolidated integrated database tables and integrateddata system data files are copied from the two source integrated datasystems' database tables and integrated data system data files. Forexample, to completely populate consolidated integrated database 1100depicted in FIG. 11, database tables 1006 a, 1007 a, 1008 a, 1009 a and1010 a need to be populated with data values. All data records fromdatabase table 1006 shown in FIG. 10 are copied into database table 1006a shown in consolidated integrated database 1100 shown in FIG. 11. Alldata records from database table 1007 shown in FIG. 10 are copied intodatabase table 1007 a shown in FIG. 11. All data records from databasetable 1008 shown in FIG. 10 are copied into database table 1008 a shownin FIG. 11. Data records for database table 1008, in at least oneembodiment, must be copied after database tables 1006 and 1007 becausedatabase table 1008 inherits a foreign key index from both databasetables 1006 and 1007 as indicated by foreign key constraints 1014 a and1015 a respectively. All data records from database table 1009 shown inFIG. 10 are copied into database table 1009 a shown in FIG. 11. All datarecords from database table 1010 shown in FIG. 10 are copied intodatabase table 1010 a shown in FIG. 11. Data records for database table1010, in at least one embodiment, must be copied after database table1009 because database table 1010 inherits a foreign key index fromdatabase tables 1009 as indicated by foreign key constraints 1021 a.Once all of the remaining database tables in the consolidated integrateddata system have been populated with data, flow chart process 1317 iscomplete. Program control is then transferred to flow chart terminator1319 as indicated by flow chart flow 1318 and the “method of data systemconsolidation from integrated data systems” has completed.

The process of consolidating integrated data systems from two or moreintegrated data systems is totally reversible. Therefore, an integrateddata system, such as integrated data system 1100 of FIG. 11, may also besplit into two or more integrated data systems, such as integrated datasystems 1000 a and 1000 b of FIG. 10, using methods such as thatdepicted in flow chart 1400 shown in FIG. 14.

Flow chart 1400 depicted in FIG. 14 is comprised of flow chart initiator1401, and of flow chart processes 1403, 1405, 1407, 1409, 1411, 1411 and1413, and flow chart decision 1415, along with flow chart flows 1402,1404, 1406, 1408, 1410, 1412, 1414, 1416 a, and 1416 b, along with flowchart terminator 1417. The flow chart used computer storage areas 520,521, 522, 523, which is the same data storage area as the four computerstorage areas depicted in flow charts 500, 800, 900, and 1300 of FIG. 5,FIG. 8, FIG. 9 and FIG. 13 respectively. These computer storage areasprovide a means to combine methods, to design and/or configure, to datasystem instantiate and to maintain integrated ERDs, integrated datamodels, integrated data systems, and integrated CMSs.

Flow chart 1400 shown in FIG. 14 begins at flow chart initiator 1401.Processor control is passed to flow chart process 1403 as indicated byflow chart flow 1402. In flow chart process 1403 of flow chart 1400, acomputer processor, such as computer processor 4 of apparatus 100, isprogrammed to display on a computer display device, such as computerdisplay device 6 of apparatus 100, a list of integrated data systemsretrieved from computer storage areas 522 and 523. The computer userselects an integrated data system, such as integrated data system 1100depicted in FIG. 11, to be split into two integrated data systems, suchas integrated data systems 1000 a and 1000 b depicted in FIG. 11, fromthe list of integrated data systems being displayed. Once the computeruser has selected the integrated data system to be split, flow chartprocess 1403 is complete and program control is passed to flow chartprocess 1405 as indicated by flow chart flow 1404.

In flow chart process 1405 of flow chart 1400, the computer userinitiates the split integrated ERD method which is detailed in flowchart 900 shown in FIG. 9. If a current integrated data model orintegrated ERD does not exist, the integrated data system to be split,such as integrate data system 1100 depicted in FIG. 11, may bereverse-engineered into an integrated data model and its associatedintegrated ERD, such as integrated ERD 700 depicted in FIG. 7. Thereverse-engineered integrated ERD and its integrated data model is thenstored in computer storage area 520. Using the “method of splitting anintegrated ERD” depicted in flow chart 900 shown in FIG. 9, twointegrated ERDs are designed and/or configured and stored in computerstorage area 520. Once both integrated ERDs have been stored, flow chartprocess 1405 is complete and program control is passed to flow chartprocess 1407 as indicated by flow chart flow 1406.

In flow chart process 1407 of flow chart 1400, an integrated data systemis data system instantiated from an integrated ERD of an integrated datamodel. The integrated ERD, such as integrated ERD 600 a shown in FIG. 6,is retrieved from computer storage area 520 and data system instantiatedto form the integrated data system, such as integrated database 1000 ashown in FIG. 10. Once the integrated data system has been data systeminstantiated, flow chart process 1407 is complete and program control ispassed to flow chart process 1409 as indicated by flow chart flow 1408.

In flow chart process 1409 of flow chart 1400, the data values arecopied from the source integrated data system into the target integrateddata systems. These data values, which are copied into the databasetables or data system data files, must be achieved in the proper orderso as not to violate any data system foreign key constraints. All theMRDS tables or MRDS files would be copied first followed by all thecommon database tables or common data systems data files and then by thedatabase tables or data system data files where parent database tablesor parent data system data files are populate with data values beforethe child database tables and child data system data files. For example,in integrated database 1000 a depicted in FIG. 10, MRDS tables 1001 a,1002 a, 1003 a, and 1004 a would be populated with data values firstfrom MRDS tables 1001 c, 1001 c, 1003 c, and 1004 c respectively ofintegrated database 1100 shown in FIG. 11. Common database table 1005 awould need to be populated with data values next as this common databasetable is dependent upon MRDS table 1003 a. Common database table 1005 aof database 1000 a would be populated from common database table 1005 cof integrated database 1100 depicted in FIG. 11. Database tables 1006and 1007, of integrated database 1000 a depicted in FIG. 10, would bothbe populated before database table 1008 as database table 1008 isdependent upon both database tables as is indicated by foreign keyconstraints 1014 and 1015. Database tables 1006, 1007 and 1008 ofintegrated database 1000 a would be populated from database tables 1006a, 1007 a, and 1008 a of integrated database 1100 depicted in FIG. 11.Once all the database tables and data system data files are populatedwith data values, flow chart process 1409 is complete and programcontrol is passed to flow chart process 1411 as indicated by flow chartflow 1410.

In flow chart process 1411 of flow chart 1400, common database tabledata records or common data system data files that are not needed aredeleted from each common database table or from each common data systemdata file. For example, data records in common database table 1005 athat are not associated with data records in database table 1008 need tobe deleted from common database table 1005 a in integrated database 1000a as depicted in FIG. 10. Once the unneeded data records have beendeleted from all the common database tables or common data system datafiles, flow chart process 1411 is complete. Program control is thenpassed to flow chart flow 1413 as indicated by flow chart flow 1412.

In flow chart process 1413 of flow chart 1400, MRDS table or MRDS filedata records that are not needed are deleted from each MRDS table orMRDS file. For example, in integrated database 1000 a depicted in FIG.10, data records in MRDS table 1001 a, that are not associated with datarecords in database table 1006 as indicated by foreign key constraint1011 or with data records in database table 1007 as indicated by foreignkey constraint 1012, should be deleted from MRDS table 1001 a. Once theindependent data records from all MRDS tables and from all MRDS fileshave been deleted, flow chart process 1413 is completed. Program controlis passed to flow chart decision 1415 as indicated by flow chart flow1414 of flow chart 1400.

In flow chart decision 1415 of flow chart 1400 shown in FIG. 14, it isdetermined if all split integrated data systems have been processed. Ifmore split integrated data systems need to be processed, program controlis passed back to flow chart process 1407 as indicated by flow chartflows 1416 b and 1406. If all split integrated databases have beenprocessed, program control is passed to flow chart terminator 1417 asindicated by flow chart flow 1414.

Although the invention has been described by reference to particularillustrative embodiments thereof, many changes and modifications of theinvention may become apparent to those skilled in the art withoutdeparting from the spirit and scope of the invention. It is thereforeintended to include within this patent all such changes andmodifications as may reasonably and properly be included within thescope of the present invention's contribution to the art.

I claim:
 1. An apparatus comprising, one or more computer processors;one or more non transitory computer readable mediums; wherein the one ormore computer processors are programmed by computer software stored inthe one or more non transitory computer readable mediums to: construct afirst entity relationship diagram; and construct a second entityrelationship diagram; wherein the first entity relationship diagramcontains a first plurality of data entity-types and a first plurality ofdata entity relationships; wherein each data entity relationship of thefirst plurality of data entity relationships is related to at most twodata entity-types of the first plurality of data entity-types; whereinthe first plurality of data entity-types includes a first dataentity-type; wherein the first data entity-type has a first unique key;and wherein the one or more computer processors are programmed bycomputer software stored in the one or more non transitory computerreadable mediums to form multiple integrated entity relationshipdiagrams by: adding a copy of the first data entity-type to the secondentity relationship diagram, wherein the copy of the first dataentity-type includes the first unique key; adding a first common entityrelationship to relate the first unique key of the first dataentity-type with the first unique key of the copy of the first dataentity-type, wherein the first common entity relationship is a peer topeer relationship that relates the first data entity type with the copyof the first data entity-type; and wherein the first entity relationshipdiagram and the second entity relationship diagram together form afederated entity relationship diagram; wherein the first entityrelationship diagram and the second entity relationship diagram share atleast one common entity relationship between them; and wherein each ofthe at least one common entity relationship provides a data systemaccess path between the first entity relationship diagram and the secondentity relationship diagram; wherein the one or more computer processorsare programmed by computer software stored in the one or more nontransitory computer readable mediums to enforce data integrity for thedata system access path of each of the at least one common entityrelationship between a first database table of a first database formedbased on the first data entity-type of the first entity relationshipdiagram and a copy of the first database table of a second databaseformed based on the copy of the first data entity-type of the secondentity relationship diagram; wherein the first data entity-type of thefirst entity relationship diagram is linked to at least two data entityrelationships of the first plurality of data entity relationships;wherein the first data entity-type of the first entity relationshipdiagram is a parent data entity of every data entity relationship of thefirst plurality of data entity relationships which is linked to thefirst data entity-type; and wherein the copy of the first dataentity-type of the second entity relationship diagram is a parent dataentity of every data entity relationship of the one or more data entityrelationships which are linked to the copy of the first dataentity-type.
 2. The apparatus of claim 1 wherein the one or morenon-transitory computer readable mediums have stored therein a firstdata model that contains the first entity relationship diagram and thesecond entity relationship diagram.
 3. The apparatus of claim 1 whereinthe one or more non-transitory computer readable mediums have storedtherein a first data model that contains the first entity relationshipdiagram and a second data model that contains the second entityrelationship diagram.
 4. The apparatus of claim 1 wherein the one ormore computer processors are programmed by computer software stored inthe one or more non transitory computer readable mediums to instantiatedata systems; wherein a first plurality of unique data records arestored in the one or more non transitory computer readable mediums;wherein the first plurality of unique data records are associated withthe first data entity-type of the first entity relationship diagram; andwherein the first data system is data system instantiated from the firstentity relationship diagram; wherein the second data system is datasystem instantiated from the second entity relationship diagram; whereinthe one or more computer processors are programmed by computer softwarestored in the one or more non transitory computer readable mediums touse the first plurality of unique data records to enforce data integrityfor the first common entity relationship when the first data system isdata system instantiated and the second data system is data systeminstantiated.
 5. The apparatus of claim 1 wherein the first plurality ofdata entity-types includes a second data entity-type; wherein the seconddata entity-type has a second unique key; wherein the second dataentity-type is linked to at least two data entity relationships of thefirst plurality of data entity relationships; wherein the second dataentity-type is a parent data entity for every data entity relationshipof the at least two data entity relationships which are linked to thesecond data entity-type; wherein the one or more computer processors areprogrammed by computer software stored in the one or more non transitorycomputer readable mediums to: add a copy of the second data entity-typeto the second entity relationship diagram, wherein the copy of thesecond data entity-type includes the second unique key; and wherein theone or more computer processors are programmed by computer softwarestored in computer memory to add a second common entity relationship torelate the second unique key of the second data entity-type with thesecond unique key of the copy of the second data entity-type.
 6. Theapparatus of claim 5 wherein the one or more computer processors areprogrammed by computer software stored in the one or more non transitorycomputer readable mediums to instantiate a data system; wherein a secondplurality of unique data records are stored in the one or more computerreadable mediums; wherein the second plurality of unique data recordsare associated with the second data entity-type in the first entityrelationship diagram; and wherein the first data system is data systeminstantiated from the first entity relationship diagram; wherein thesecond data system is data system instantiated from the second entityrelationship diagram; wherein the computer is programmed by computersoftware stored in the one or more non transitory computer readablemediums to use the second plurality of unique data records to enforcedata integrity for the second common entity relationship when the firstdata system is data system instantiated and the second data system isdata system instantiated.
 7. The apparatus of claim 1 wherein a secondcopy of the first data entity-type is added to a third entityrelationship diagram; and wherein the first common entity relationshiprelates the first unique key of the second copy of the first dataentity-type in the third entity relationship diagram to the first uniquekey of the first data entity-type in the first entity relationshipdiagram and to the first unique key of the first copy of the first dataentity-type in the second entity relationship diagram; and wherein thefirst common entity relationship is a peer to peer relationship thatrelates the first data entity with the copy of the first data entity andwith the second copy of the first data entity.
 8. An apparatuscomprising one or more computer processors programmed by computersoftware stored in one or more non transitory computer readable mediumsto: configure and store in the one or more non transitory computerreadable mediums a first entity relationship diagram; configure andstore in the one or more non transitory computer readable mediums asecond entity relationship diagram; configure and store in the one ormore non transitory computer readable mediums a first plurality of dataentity-types as part of the first entity relationship diagram; configureand store in the one or more non transitory computer readable mediums afirst plurality of data entity relationships; configure and store in theone or more non transitory computer readable mediums a second pluralityof data entity-types as part of the second entity relationship diagram;configure and store in the one or more non transitory computer readablemediums a second plurality of data entity relationships; wherein eachdata entity relationship of the first plurality of data entityrelationships is related to at most two data entity-types of the firstplurality of data entity-types; wherein each data entity relationship ofthe second plurality of data entity relationships is related to at mosttwo data entity-types of the second plurality of data entity-types;wherein the first plurality of data entity-types includes a first dataentity-type with a first unique key; further wherein the one or morecomputer processors are programmed by computer software stored in one ormore non transitory computer readable mediums to: add a second dataentity-type with the first unique key into the second entityrelationship diagram; incorporate the second data entity-type into thesecond entity relationship diagram by adding a data entity relationshipto the second plurality of data entity relationships that relates thefirst unique key of the second data entity-type to a particular dataentity-type of the second plurality of data entity-types forming aforeign key in the particular data entity-type; add a first commonentity relationship that relates the first unique key of the first dataentity-type of the first entity relationship diagram to the first uniquekey of the second data entity-type of the second entity relationshipdiagram; and consolidate the first entity relationship diagram with thesecond entity relationship diagram to form a consolidated entityrelationship diagram by: detaching each data entity relationship of thesecond plurality of data entity relationships related to the second dataentity-type; attaching each data entity relationship of the secondplurality of data entity relationships previously related to the seconddata entity-type to the first data entity-type in the one or morecomputer readable mediums; deleting the first common entity relationshipfrom the one or more computer readable mediums; and deleting the seconddata entity-type from the second plurality of data entity-types; whereinthe first data entity-type is a parent data entity in every data entityrelationship which is linked to the first data entity-type; wherein thesecond data entity-type was a parent data entity in every data entityrelationship which were linked to the second data entity-type beforedeleting the second data entity-type.
 9. The apparatus of claim 8wherein the first entity relationship diagram is contained within afirst data model; and wherein the second entity relationship diagram iscontained within the first data model.
 10. The apparatus of claim 8wherein the first entity relationship diagram is contained within afirst data model; and wherein the second entity relationship diagram iscontained within a second data model.
 11. The apparatus of claim 8wherein the second data entity-type is a copy of the first dataentity-type.
 12. The apparatus of claim 8 wherein the one or morenon-transitory computer readable mediums have computer software storedtherein for programming the one or more computer processors toconsolidate the first common entity relationship by: detaching each dataentity relationship of the first plurality of data entity relationshipsrelated to the fourth data entity-type and attaching each data entityrelationship of the first plurality of data entity relationshipspreviously related to the fourth data entity-type to the first dataentity-type in the one or more non transitory computer readable mediums;removing the first common entity relationship from the one or more nontransitory computer readable mediums; and deleting the fourth dataentity-type from the first plurality of data entity-types.
 13. Theapparatus of claim 8 wherein before deleting the third data entity-typefrom the first plurality of data entity-types, the third dataentity-type is contained in a third entity relationship diagram in theone or more non transitory computer readable mediums; and wherein beforedeleting the fourth data entity-type from the first plurality of dataentity-types, the fourth data entity-type is contained in a fourthentity relationship diagram in the one or more non transitory computerreadable mediums.
 14. The apparatus of claim 8 wherein the firstplurality of data entity-types includes a third data entity-type withthe first unique key; wherein the first plurality of data entity-typesincludes a fourth data entity-type with the first unique key; whereinthe first plurality of data entity-types includes a fifth dataentity-type with a second unique key; wherein the first plurality ofdata entity-types includes a sixth data entity-type with the secondunique key; wherein the first plurality of data entity-types includes aseventh data entity-type with the second unique key; wherein the one ormore non-transitory computer readable mediums have computer softwarestored therein for programming the one or more computer processors toconfigure and store in the one or more non transitory computer readablemediums a second common entity relationship that relates the secondunique keys of the fifth data entity-type, sixth data entity-type, andthe seventh data entity-type; and wherein the one or more non-transitorycomputer readable mediums have computer software stored therein forprogramming the one or more computer processors to consolidate thesecond common entity relationship by: detaching each data entityrelationship of the first plurality of data entity relationships relatedto the sixth data entity-type and attaching each data entityrelationship of the first plurality of data entity relationshipspreviously related to the sixth data entity-type to the fifth dataentity-type in the one or more non transitory computer readable mediums;and deleting the sixth data entity-type from the first plurality of dataentity-types.
 15. The apparatus of claim 14 wherein the one or morecomputer processors are programmed by computer software stored in theone or more non transitory computer readable mediums to instantiate datasystems; wherein a first plurality of unique data records are stored inthe computer memory; wherein the first plurality of unique data recordsare associated with one or more data entity-types of the first pluralityof data entity-types that are related by the first common entityrelationship in the one or more non transitory computer readablemediums; wherein the one or more computer processors are programmed bycomputer software stored in the one or more non transitory computerreadable mediums to use the first plurality of unique data records toenforce data integrity for the first common entity relationship when thedata systems are instantiated; wherein a second plurality of unique datarecords are stored in the one or more non transitory computer readablemediums; wherein the second plurality of unique data records areassociated with one or more data entity-types of the first plurality ofdata entity-types that are related by the second common entityrelationship; and wherein the one or more computer processors areprogrammed by computer software stored in the one or more non transitorycomputer readable mediums to use the second plurality of unique datarecords to enforce data integrity for the second common entityrelationship when the data systems are instantiated.
 16. The apparatusof claim 8 wherein the one or more computer processors are programmed bycomputer software stored in the one or more non transitory computerreadable mediums to instantiate data systems; wherein a first pluralityof unique data records are stored in the one or more non transitorycomputer readable mediums; wherein the first plurality of unique datarecords are associated with one or more data entity-types of the firstplurality of data entity-types that are related by the first commonentity relationship in the one or more non transitory computer readablemediums; and wherein the one or more computer processors are programmedby computer software stored in the one or more non transitory computerreadable mediums to use the first plurality of unique data records toenforce data integrity for the first common entity relationship when thedata systems are instantiated.
 17. An apparatus comprising: one or morecomputer processors; and one or more non transitory computer readablemediums; wherein the one or more computer processors are programmed bycomputer software stored in the one or more non transitory computerreadable mediums to: configure and store a first entity relationshipdiagram in the one or more non transitory computer readable mediums thatcontains a first data entity-type with a first unique key; configure andstore a first plurality of unique data records in the one or more nontransitory computer readable mediums; wherein the first plurality ofunique data records is associated to the first data entity-type of thefirst entity relationship diagram in the one or more non transitorycomputer readable mediums; wherein the one or more computer processorsare programmed by computer software stored in the one or more nontransitory computer readable mediums to configure and store a secondentity relationship diagram in the one or more non transitory computerreadable mediums that contains a first plurality of data entity-typesand a first plurality of data entity relationships; wherein each dataentity relationship of the first plurality of data entity relationshipsis related to at most two data entity-types of the first plurality ofdata entity-types in the one or more non transitory computer readablemediums; and wherein the one or more computer processors are programmedby computer software stored in the one or more non transitory computerreadable mediums to perform standardized data integration by: adding afirst copy of the first data entity-type with the first unique key tothe second entity relationship diagram in the one or more non transitorycomputer readable mediums; associating the first copy of the first dataentity-type with the first plurality of unique data records in the oneor more non transitory computer readable mediums; and relating the firstunique key of the first data entity-type of the first entityrelationship diagram with the first unique key of the first copy of thefirst data entity-type in the second entity relationship diagram with afirst common entity relationship in the one or more non transitorycomputer readable mediums; wherein the one or more computer processorsare programmed by computer software stored in the one or more nontransitory computer readable mediums to: use the first data entityrelationship diagram to instantiate a first integrated data system; usethe second data entity relationship diagram to instantiate a secondintegrated data system; and use the first plurality of unique datarecords to enforce master reference data integrity between the firstintegrated data system and the second integrated data system; whereinthe first copy of the first data entity-type in the second entityrelationship diagram is linked to one or more data entity-types of thefirst plurality of data entity-types by one or more data entityrelationships of the first plurality of data entity relationships in theone or more non transitory computer readable mediums; wherein the firstcopy of the first data entity-type in the second entity relationshipdiagram is a parent data entity of every data entity relationship of thefirst plurality of data entity relationships which is linked to thefirst copy of the first data entity-type in the one or more nontransitory computer readable mediums; wherein the first data entity-typeof the first entity relationship diagram includes a second unique key;wherein the first copy of the first data entity-type of the secondentity relationship diagram includes the second unique key; and whereina second common entity relationship relates the second unique key of thefirst data entity-type of the first entity relationship diagram to thesecond unique key of the first copy of the first data entity-type of thesecond entity relationship diagram in the one or more non transitorycomputer readable mediums.
 18. The apparatus of claim 17 wherein the oneor more computer processors is programmed by computer software stored inthe one or more non transitory computer readable mediums to: add asecond data entity-type with a second unique key to the first entityrelationship diagram; store a second plurality of unique data records inthe one or more non transitory computer readable mediums; associate thesecond plurality of unique data records with the second data entity-typein the first entity relationship diagram in the one or more nontransitory computer readable mediums; add a first copy of the seconddata entity-type with the second unique key to the second entityrelationship diagram; associated the second plurality of unique datarecords with the first copy of the second data entity-type in the secondentity relationship diagram; and form a second common entityrelationship that relates the second unique key of the second dataentity-type in the first entity relationship diagram with the secondunique of the first copy of the second data entity-type in the secondentity relationship diagram in the one or more non transitory computerreadable mediums.
 19. The apparatus of claim 17 wherein the one or morecomputer processors are programmed by computer software in the one ormore non transitory computer readable mediums to: configure a thirdentity relationship diagram in the one or more non transitory computerreadable mediums; wherein the third entity relationship diagram includesa second plurality of data entity-types and a second plurality of dataentity relationships; wherein each data entity relationship of thesecond plurality of data entity relationships is related to at most twodata entity-types of the second plurality of data entity-types; andwherein the one or more computer processor are programmed by computersoftware in the one or more non transitory computer readable mediums toperform standardized data integration by: adding a second copy of thefirst data entity-type with the first unique key to the third entityrelationship diagram; associating the second copy of the first dataentity-type with the first plurality of unique data records in the oneor more non transitory computer readable mediums; and relating the firstunique key of the first data entity-type of the first entityrelationship diagram with the first unique key of the first copy of thefirst data entity-type in the second entity relationship diagram andwith the first unique key of the second copy of the first dataentity-type in the third entity relationship diagram with the firstcommon entity relationship in the one or more non transitory computerreadable mediums.
 20. The apparatus of claim 19 wherein the one or morecomputer processors is programmed by computer software stored in the oneor more non transitory computer readable mediums to: add a second dataentity-type with a second unique key to the first entity relationshipdiagram; store a second plurality of unique data records in the one ormore non transitory computer readable mediums; associate the secondplurality of unique data records with the second data entity-type in thefirst entity relationship diagram in the one or more non transitorycomputer readable mediums; add a first copy of the second dataentity-type with the second unique key to the second entity relationshipdiagram; associate the second plurality of unique data records with thefirst copy of the second data entity-type in the second entityrelationship diagram; add a second copy of the second data entity-typewith the second unique key to the third entity relationship diagram;associate the second plurality of unique data records with the secondcopy of the second data entity-type in the third entity relationshipdiagram; and form a second common entity relationship that relates thesecond unique key of the second data entity-type in the first entityrelationship diagram with the second unique of the first copy of thesecond data entity-type in the second entity relationship diagram andwith the second unique key of the second copy of the second dataentity-type in the third entity relationship diagram in the one or morenon transitory computer readable mediums.
 21. The apparatus of claim 19wherein the first entity relationship diagram is contained within afirst data model in the one or more non transitory computer readablemediums; wherein the second entity relationship diagram is containedwithin the first data model in the one or more non transitory computerreadable mediums; and wherein the third entity relationship diagram iscontained within a second data model in the one or more non transitorycomputer readable mediums.
 22. The apparatus of claim 17 wherein thefirst entity relationship diagram is contained within a first data modelin the one or more non transitory computer readable mediums; and whereinthe second entity relationship diagram is contained within a second datamodel in the one or more non transitory computer readable mediums.